From 5a2b1ad8de04313d6089be9dc8d26ae2ae2bd6f2 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 20 Apr 2026 12:18:10 +0300 Subject: [PATCH] all: fix more tests --- vlib/io/buffered_writer_test.v | 16 ++++++------ vlib/v/checker/check_types.v | 2 +- vlib/v/fmt/tests/comptime_keep.vv | 6 ++--- vlib/v/gen/c/orm.v | 26 ++++++++++--------- .../v/generics/new_generics_regression_test.v | 18 +++++++------ vlib/v/slow_tests/inout/os.out | 1 + 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/vlib/io/buffered_writer_test.v b/vlib/io/buffered_writer_test.v index 27b08881a..820284bb2 100644 --- a/vlib/io/buffered_writer_test.v +++ b/vlib/io/buffered_writer_test.v @@ -82,7 +82,7 @@ fn write_random_data(mut aw ArrayWriter, mut bw io.BufferedWriter, max int) !int fn test_flush() { mut aw := ArrayWriter{} max := 65536 - mut bw := io.new_buffered_writer(writer: aw, cap: max)! + mut bw := io.new_buffered_writer(writer: &aw, cap: max)! // write less data than buffer capacity, the underlying writer should receive no data. written := write_random_data(mut aw, mut bw, 65536)! @@ -98,7 +98,7 @@ fn test_flush() { fn test_write() { mut aw := ArrayWriter{} max := 65536 - mut bw := io.new_buffered_writer(writer: aw, cap: max)! + mut bw := io.new_buffered_writer(writer: &aw, cap: max)! // write less data than buffer capacity, the underlying writer should receive no data. written := write_random_data(mut aw, mut bw, 65536)! @@ -116,7 +116,7 @@ fn test_write() { fn test_write_big() { mut aw := ArrayWriter{} max := 65536 - mut bw := io.new_buffered_writer(writer: aw, cap: max)! + mut bw := io.new_buffered_writer(writer: &aw, cap: max)! more_than_max := max + small_amount() big_source := rand.bytes(more_than_max)! @@ -139,7 +139,7 @@ fn create_data(n int) []u8 { fn test_simple_write() { mut aw := ArrayWriter{} - mut bw := io.new_buffered_writer(writer: aw, cap: 10)! + mut bw := io.new_buffered_writer(writer: &aw, cap: 10)! mut data := create_data(6) w1 := bw.write(data)! @@ -168,7 +168,7 @@ fn test_simple_write() { fn test_simple_flush() { mut aw := ArrayWriter{} - mut bw := io.new_buffered_writer(writer: aw, cap: 10)! + mut bw := io.new_buffered_writer(writer: &aw, cap: 10)! data := create_data(6) w := bw.write(data)! @@ -184,7 +184,7 @@ fn test_flush_handles_partial_writes() { mut cw := ChunkedArrayWriter{ chunk: 2 } - mut bw := io.new_buffered_writer(writer: cw, cap: 8)! + mut bw := io.new_buffered_writer(writer: &cw, cap: 8)! data := 'abcdefg'.bytes() written := bw.write(data)! @@ -201,7 +201,7 @@ fn test_flush_preserves_unwritten_data_on_error() { mut fw := FailOnceChunkedWriter{ chunk: 3 } - mut bw := io.new_buffered_writer(writer: fw, cap: 8)! + mut bw := io.new_buffered_writer(writer: &fw, cap: 8)! data := 'abcdefg'.bytes() _ = bw.write(data)! @@ -221,7 +221,7 @@ fn test_flush_preserves_unwritten_data_on_error() { fn test_write_returns_error_for_zero_progress_writes() { mut zw := ZeroProgressWriter{} - mut bw := io.new_buffered_writer(writer: zw, cap: 4)! + mut bw := io.new_buffered_writer(writer: &zw, cap: 4)! if _ := bw.write('12345'.bytes()) { assert false diff --git a/vlib/v/checker/check_types.v b/vlib/v/checker/check_types.v index 67c82382d..d882a0241 100644 --- a/vlib/v/checker/check_types.v +++ b/vlib/v/checker/check_types.v @@ -986,7 +986,7 @@ fn (mut c Checker) symmetric_check(left ast.Type, right ast.Type) bool { } fn (c &Checker) generic_type_args_and_parent_idx(typ ast.Type) ([]ast.Type, int) { - base_typ := typ.clear_flags().clear_option_and_result() + base_typ := c.table.fully_unaliased_type(typ.clear_flags().clear_option_and_result()) sym := c.table.sym(base_typ) match sym.info { ast.Struct { diff --git a/vlib/v/fmt/tests/comptime_keep.vv b/vlib/v/fmt/tests/comptime_keep.vv index 689cbea74..fc3ff2879 100644 --- a/vlib/v/fmt/tests/comptime_keep.vv +++ b/vlib/v/fmt/tests/comptime_keep.vv @@ -1,4 +1,4 @@ -import vweb +import veb const embedded_file = $embed_file(r'C:\Users\user\path\to\file') @@ -81,8 +81,8 @@ fn comptime_call_dollar_method() { handle_conn[App](mut app) } -fn (mut app App) create() vweb.Result { - return $vweb.html() +fn (mut app App) create() veb.Result { + return $veb.html() } fn main() { diff --git a/vlib/v/gen/c/orm.v b/vlib/v/gen/c/orm.v index bfe41a4a2..79e3f671a 100644 --- a/vlib/v/gen/c/orm.v +++ b/vlib/v/gen/c/orm.v @@ -559,13 +559,14 @@ fn (mut g Gen) write_orm_upsert(node &ast.SqlStmtLine, table_name string, connec mut inserting_object_type := ast.void_type mut member_access_type := '.' if node.scope != unsafe { nil } { - inserting_object := node.scope.find(node.object_var) or { - verror('`${node.object_var}` is not found in scope') - } - if inserting_object.typ.is_ptr() { - member_access_type = '->' + if inserting_object := node.scope.find(node.object_var) { + if inserting_object.typ.is_ptr() { + member_access_type = '->' + } + inserting_object_type = g.orm_inserting_object_type(inserting_object) + } else { + inserting_object_type = node.table_expr.typ } - inserting_object_type = g.orm_inserting_object_type(inserting_object) } inserting_object_sym := g.table.sym(inserting_object_type) data_var_name := g.new_tmp_var() @@ -874,13 +875,14 @@ fn (mut g Gen) write_orm_insert_with_last_ids(node ast.SqlStmtLine, connection_v mut inserting_object_type := ast.void_type mut member_access_type := '.' if node.scope != unsafe { nil } { - inserting_object := node.scope.find(node.object_var) or { - verror('`${node.object_var}` is not found in scope') - } - if inserting_object.typ.is_ptr() { - member_access_type = '->' + if inserting_object := node.scope.find(node.object_var) { + if inserting_object.typ.is_ptr() { + member_access_type = '->' + } + inserting_object_type = g.orm_inserting_object_type(inserting_object) + } else { + inserting_object_type = node.table_expr.typ } - inserting_object_type = g.orm_inserting_object_type(inserting_object) } inserting_object_sym := g.table.sym(inserting_object_type) diff --git a/vlib/v/generics/new_generics_regression_test.v b/vlib/v/generics/new_generics_regression_test.v index a5044a39a..3d79ebcf6 100644 --- a/vlib/v/generics/new_generics_regression_test.v +++ b/vlib/v/generics/new_generics_regression_test.v @@ -117,10 +117,9 @@ fn run_new_generic_solver_tests(root_label string, test_cmd string, expected_sum println('') } -const expected_summsvc_generics = 'Summary for all V _test.v files: 108 failed, 179 passed, 287 total.' -// The exact failure count varies slightly across compilers: -// gcc/tcc: 106, clang: 107, msvc/windows-gcc: 108. -const expected_summary_generics = 'Summary for all V _test.v files: 106 failed, 181 passed, 287 total.' +const expected_summsvc_generics = 'Summary for all V _test.v files: 111 failed, 180 passed, 291 total.' +// The exact failure count varies slightly across compilers. +const expected_summary_generics = 'Summary for all V _test.v files: 109 failed, 182 passed, 291 total.' const expected_summsvc_vec = 'Summary for all V _test.v files: 3 failed, 3 total.' const expected_summary_vec = 'Summary for all V _test.v files: 3 failed, 3 total.' const expected_summsvc_flag = 'Summary for all V _test.v files: 21 passed, 21 total.' @@ -129,7 +128,6 @@ const expected_summsvc_flag_clean = 'Summary for all V _test.v files: 21 passed, const expected_summary_flag_clean = 'Summary for all V _test.v files: 21 passed, 21 total.' const failing_tests = [ 'vlib/v/tests/generics/checks_for_operator_overrides_should_happen_on_the_concrete_types_when_using_generics_test.v', - 'vlib/v/tests/generics/default_type_with_ref_test.v', 'vlib/v/tests/generics/generic_array_of_alias_test.v', 'vlib/v/tests/generics/generic_array_of_sumtype_push_test.v', 'vlib/v/tests/generics/generic_array_ret_test.v', @@ -143,20 +141,23 @@ const failing_tests = [ 'vlib/v/tests/generics/generic_fn_infer_multi_paras_test.v', 'vlib/v/tests/generics/generic_fn_infer_nested_struct_test.v', 'vlib/v/tests/generics/generic_fn_multi_return_test.v', + 'vlib/v/tests/generics/generic_fn_short_syntax_struct_param_test.v', 'vlib/v/tests/generics/generic_fn_typeof_name_test.v', - 'vlib/v/tests/generics/generic_fn_with_comptime_for_test.v', 'vlib/v/tests/generics/generic_function_error_propagation_test.v', 'vlib/v/tests/generics/generic_interface_field_test.v', 'vlib/v/tests/generics/generic_interface_infer_test.v', 'vlib/v/tests/generics/generic_interface_map_value_test.v', 'vlib/v/tests/generics/generic_interface_nested_generic_type_infer_test.v', + 'vlib/v/tests/generics/generic_interface_nested_struct_infer_test.v', 'vlib/v/tests/generics/generic_interface_test.v', + 'vlib/v/tests/generics/generic_linked_list_ref_push_test.v', 'vlib/v/tests/generics/generic_map_alias_test.v', + 'vlib/v/tests/generics/generic_match_expr_test.v', 'vlib/v/tests/generics/generic_match_generic_interface_type_test.v', 'vlib/v/tests/generics/generic_method_with_variadic_generic_args_test.v', + 'vlib/v/tests/generics/generic_mut_pointer_param_test.v', 'vlib/v/tests/generics/generic_operator_overload_test.v', 'vlib/v/tests/generics/generic_receiver_embed_test.v', - 'vlib/v/tests/generics/generic_recursive_fn_test.v', 'vlib/v/tests/generics/generic_resolve_test.v', 'vlib/v/tests/generics/generic_return_test.v', 'vlib/v/tests/generics/generic_selector_field_test.v', @@ -205,6 +206,7 @@ const failing_tests = [ 'vlib/v/tests/generics/generics_method_str_overload_test.v', 'vlib/v/tests/generics/generics_method_with_diff_generic_names_test.v', 'vlib/v/tests/generics/generics_method_with_generic_anon_fn_argument_test.v', + 'vlib/v/tests/generics/generics_mut_receiver_local_copy_regression_test.v', 'vlib/v/tests/generics/generics_nested_struct_init_test.v', 'vlib/v/tests/generics/generics_params_nested_generic_struct_short_syntax_test.v', 'vlib/v/tests/generics/generics_return_generics_struct_test.v', @@ -212,6 +214,7 @@ const failing_tests = [ 'vlib/v/tests/generics/generics_str_intp_test.v', 'vlib/v/tests/generics/generics_struct_anon_fn_type_test.v', 'vlib/v/tests/generics/generics_struct_free_test.v', + 'vlib/v/tests/generics/generics_struct_init_with_inconsistent_generic_types_7_test.v', 'vlib/v/tests/generics/generics_struct_inst_method_call_test.v', 'vlib/v/tests/generics/generics_struct_parent_has_str_to_string_test.v', 'vlib/v/tests/generics/generics_struct_to_string_test.v', @@ -232,7 +235,6 @@ const failing_tests = [ 'vlib/v/tests/generics/generics_with_multiple_generics_struct_receiver_test.v', 'vlib/v/tests/generics/generics_with_nested_external_generics_fn_test.v', 'vlib/v/tests/generics/generics_with_nested_generic_method_call_test.v', - 'vlib/v/tests/generics/generics_with_nested_generics_fn_infer_call_test.v', 'vlib/v/tests/generics/generics_with_pointer_index_test.v', ]! const failing_math_vec_tests = [ diff --git a/vlib/v/slow_tests/inout/os.out b/vlib/v/slow_tests/inout/os.out index 31ba082cd..a1a850216 100644 --- a/vlib/v/slow_tests/inout/os.out +++ b/vlib/v/slow_tests/inout/os.out @@ -1,4 +1,5 @@ c_and_v_type_interoperability.md +codelite.md docs.md ownership.md packaging_v_for_distributions.md -- 2.39.5