if (dlua_pcall(script->L, "test_read_bytes", 1, 0, &error) < 0)
i_fatal("%s", error);
+ /* Check error handling. */
+ is = i_stream_create_error(EINVAL);
+ dlua_push_istream(script, is);
+ i_stream_unref(&is);
+ if (dlua_pcall(script->L, "test_read_error", 1, 0, &error) < 0)
+ i_fatal("%s", error);
+
dlua_script_unref(&script);
/* ensure all tests were actually ran */
- test_assert_ucmp(assert_count, ==, 19);
+ test_assert_ucmp(assert_count, ==, 21);
test_end();
}
test_assert("r == \\0\\1\\2\\3\\4\\5", r == "\0\1\2\3\4\5")
test_assert("#r==6", #r == 6)
end
+
+function test_read_error(is)
+ local _, err, errno = is:read(1)
+ test_assert("errno == 22", errno == 22)
+ test_assert("err = (error): Invalid argument", err == "(error): Invalid argument")
+end