2008-05-01 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / ChangeLog
index ead84f6d7f85834970887ded3f93ea0244646e3a..fcd0023ee2335811e71095d96fdd03b7e723c5b8 100644 (file)
@@ -1,3 +1,603 @@
+2008-05-01 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_ldsfld_no_fld.il: Fixed compilation
+       and renamed to invalid_ldsfld_no_fld.il.
+
+       * BatchCompiler.cs: New driver to fast compile the
+       verifier test suite. It's about 20x faster now.
+
+       * Makefile: Use the ilasm driver for faster compilation.
+
+2008-04-30 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_il_overflow_test.sh: New test generator
+       for a truncated IL stream.
+
+       * make_tests.sh: Fixed generation script. Added
+       tests using the new generator.
+
+2008-04-23 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: Add some tests for overlapping
+       aligned reference fields.
+
+       * Makefile: Added new test prefix typeunverifiable.
+       It should be used for tests that type fails to load
+       only under verifiable.
+
+2008-04-15 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_boxed_genarg_test.sh: New test generator
+       for boxed generic arguments.
+
+       * make_test.sh: Added tests using the new generator
+       for the interaction between boxed generic arguments
+       and its constraint types.
+
+2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * AssemblyRunner.cs: If a VerificationException
+       happens while running under fulltrust, it means
+       that the code is invalid.
+
+       * make_method_constraint_test.sh: Test generator for
+       generic methods argument constraints.
+
+       * make_test.sh: Added tests for invalid opcodes
+       using the new generator.
+
+       * invalid_generic_method_and_type.il: New test
+       for generic constraints.
+
+2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_bad_op_test.sh: Test generator for
+       invalid opcodes.
+
+       * make_test.sh: Added tests for invalid opcodes
+       using the new generator.
+
+2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_overlapped_test.sh: Test generator for
+       overlapped fields.
+
+       * make_test.sh: Added tests for overlapped
+       fields using the new generator.
+
+2008-04-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_unary_test.sh: Clear the stack before ret.
+
+       * make_test.sh: Added tests for ckfinite.
+
+2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tail_call_test.sh: New test generator for
+       tail prefix.
+
+       * make_test.sh: Added tests using the new generator.
+
+2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_branch_middle_of_instruction.il: Recent
+       work on prefixes broke the verification for branching
+       in the middle of an instruction.
+
+2008-04-02 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_prefix_test.sh: New test generator for
+       instruction prefix.
+
+       * make_test.sh: Added tests using the new generator.
+
+2008-04-02 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_type_constraint_test.sh: New test generator for
+       constraints on generic type arguments.
+
+       * make_testS: Added tests using the new generator.
+
+2008-03-31 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * AssemblyRunner.cs: Mark TypeLoadException as invalid code.
+
+2008-03-25 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_branch_to_first_prefix.il: Test branching to the first prefix
+       of an instruction.
+
+2008-03-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_cmmp_test.sh: Test generator for readonly pointers.
+
+       * make_test.sh: New tests using the added generator.
+
+2008-03-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_constrained_test.sh: Test generator for constrained calls.
+
+       * make_test.sh: New tests using the added generator.
+
+2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_generic_test.cs: Tests for generic classes.
+
+       * unverifiable_generic_type_field_access.il: Tests for
+       not mixing generic arguments.
+
+       * valid_generic_test.cs: Add tests for generic
+       class and method together.
+
+2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * strict_native_int_converts_to_unamanged_pointer.cs: Allow
+       conversion from native int to unmanaged pointer in non-strict mode.
+       This is required to allow the C# expression "(IntPtr)null" to be
+       verifiable.
+
+2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_ldftn_final_virtual_method.il:
+       * valid_ldftn_sealed_type_virtual_method.il: Tests the interaction
+       of sealed type and final method or ldftn verifiability.
+
+2008-03-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_delegate_compat_test.sh: Added. Generate tests for
+       compatibility between delegate signature and function
+       signature.
+
+       * make_tests.sh: Added tests using make_delegate_compat_test.sh.
+
+2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_invalid_ret_type.sh: Added. Generate return site tests
+       for invalid return types.
+
+       * make_tests.sh: Add tests using make_invalid_ret_type.sh. 
+
+2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_callvirt_static_method.il: Added. Test for callvirt and
+       static methods.
+
+2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_refanytype_null_stack_top.il: New test for refanytype opcode.
+
+       * invalid_refanytype_invalid_stack_top.il: Same.
+
+       * valid_refanytype.il: Same.
+
+2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_mkrefany.il: New test generator for mkrefany opcode.
+
+       * make_tests.sh: Added tests for mkrefany.
+
+2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_vararg.il: New test for calling vararg methods.
+
+2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_refanyval.il: New test for the refanyval opcode.
+
+       * invalid_refanyval_null_stack_top.il: Same.
+
+       * invalid_refanyval_invalid_stack_top.il: Same.
+
+2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_arglist.il: New test for the arglist opcode.
+
+       * invalid_arglist_method_not_vararg.il: Same.
+
+2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_locals_without_initlocals.il: Methods with locals
+       that are not .init are allways unverifiable.
+
+2008-02-08 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_void_ptr_store_2.cs: Tests for using unmanaged pointers.
+       This test looks for void pointers.
+
+       * unverifiable_void_ptr_store_3.cs: Same.
+
+       * unverifiable_void_ptr_store.cs: Same.
+
+       * valid_merge_boxed_type_3.cs: Test merging a reference type diferent than
+       System.Object and a boxed valuetype. This is hopefully the last issue of
+       merging stack frames.
+
+       * Makefile: compile .cs files with /unsafe switch.
+
+2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_boxed_enum_is_compatible_with_system_enum.cs: Added. 
+       Test if an enum is compatible with System.Enum.
+
+       * valid_merge_boxed_type.cs: Added. Test merging
+       a boxed int32 with a reference type.
+
+       * valid_merge_boxed_type_2.cs: Same.
+
+       * make_ldelem_test.sh: Added some enums to be used by the tests.
+
+       * make_tests.sh: New tests for ldelem compatibility between enums
+       and their base type. Marked some tests as strict.
+
+2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_merge_base_type.cs
+       * valid_merge_first_value_is_base_type.cs:
+       * valid_merge_interface_type_3.cs: 
+       * valid_merge_interface_type_4.cs:
+       * valid_merge_interface_type.cs:
+       * valid_merge_second_value_is_base_type.cs: New tests for stack merging.
+       These tests verify the correctness of the merged value.
+
+2008-01-30 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: More tests for brtrue/brfalse with boxed values
+       and null literals.
+
+       * make_bool_branch_test.sh: New optional arg to allow for new tests.
+
+2008-01-30 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: Removed some invalid tests for nesting access
+       as they where trying to call non final virtual methods without using
+       the 'this' pointer.
+
+2008-01-23 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_call_test.sh: test generator for call and callvirt.
+
+       * make_tests.sh: added tests for call and callvirt.
+
+2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_ldstr_bad_token.il: added. check the index
+       against the the #US heap.
+
+2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_newobj_no_visibility.il: added. visibility
+       check for newobj.
+
+2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_ldftn_no_visibility.il: added. visibility
+       check for ldftn.
+
+       * unverifiable_ldvirtftn_no_visibility.il: added. visibility
+       check for ldvirtftn.
+
+2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: added tests for ovf math with floats.
+
+2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_localloc_test.sh: test generator for localloc.
+
+       * make_tests.sh: added tests for localloc.
+
+2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_sizeof_test.sh: test generator for sizeof.
+
+       * make_tests.sh: added tests for sizeof.
+
+2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_cp_test.sh: test generator for cpobj.
+
+       * make_tests.sh: added tests for cpobj.
+
+2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_initobj_invalid_token_out_of_bounds.il: tests for initobj.
+
+       * invalid_initobj_invalid_token_type.il: same.
+
+       * make_initobj_test.sh: test generator for initobj.
+
+       * make_tests.sh: added tests for initobj.
+
+2008-01-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * unverifiable_ldfld_reference_type_by_ref.il: new test for ldfld.
+
+       * invalid_stojb_bad_token.il: test for bad ldobj token.
+
+       * invalid_stojb_token_out_of_bounds.il: same.
+
+       * make_stobj_test.sh: new test generator.
+
+       * make_test.sh: added new tests for stobj.
+       
+2008-01-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_ldftn_method_spec_token.il: new test
+       for loading function pointers for generic methods.
+
+2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for unbox.any.
+
+       * make_unbox_any_test.sh: new test generator.
+
+2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for add|sub|mul ovf;
+
+       * unverifiable_unbox_toke_is_reference_type.il: New test for regressions
+       found while validating vbnc.
+
+       * valid_stind_ref_with_boxed_value.il: same.
+       *  valid_ldelema_enum_array.il: same.
+
+2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_isinst_with_boxed_valuetype.il: New test for regressions
+       found while validating vbnc.
+
+       * valid_ldfld_valuetype_by_ref.il: same.
+       * valid_ldfld_valuetype_by_value.il: same.
+       * valid_stelem_ref_boxed_value.il: same.
+       * valid_stloc_boxed_valuetype.il: same.
+       * valid_sub_class_of_generic_type_is_compatible.il: same.
+       * unverifiable_ldfld_valuetype_boxed.il:  same.
+       * unverifiable_ldfld_reference_type_by_ref.il: same.
+
+       * make_test.sh: new tests for stfld and cgt.un.
+       
+
+2008-01-08 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_delegate_test.sh: increased max stack for
+       ldvirtftn tests.
+
+       * make_tests.sh: added new tests for delegates
+       constructed with ldvirtftn.
+
+2008-01-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_delegate_test.sh: added.
+
+       * make_tests.sh: added new tests for delegates
+       constructed with ldftn.
+
+2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_ldvirtftn_invalid_token_type.il: added.
+       
+       * make_ldvirtftn_test.sh: added.
+
+       * invalid_ldvirtftn_invalid_token_out_of_bounds.il: added.
+
+       * make_ldftn_test.sh: changed to allow more tests.
+
+       * make_tests.sh: added new tests for ldvirtftn and
+       a buch more for ldftn.
+
+2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_ldftn_invalid_token_out_of_bounds.il: added.
+       
+       * invalid_ldftn_invalid_token_type.il: added.
+
+       * make_ldftn_test.sh: added.
+
+       * make_test.sh: new tests for ldftn.
+
+       * AssemblyRunner.cs: added BadImageFormatException
+       to the list of invalid code errors. Removed
+       some dead code and an useless message.
+
+
+2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_non_empty_stack_at_try_begin.il: added.
+
+       * valid_branch_to_first_intruction_of_try.il: added.
+
+
+2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_exception_overlap_test.sh: new test generator.
+
+       * make_tests.sh: new tests for exception clause restrictions
+       enumerated in P1 12.4.2.7.
+
+       * invalid_catch_block_starts_after_prefix.il: new test
+       for a catch block that starts in the middle of an instruction.
+
+2007-12-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_switch_test.sh: new test generator.
+
+       * make_exception_branch_test.sh: the filter
+       handler did not pop the exception argument.
+
+       * make_tests.sh: add tests for switch.
+
+2007-12-21 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_branch_test.sh: new test generator.
+
+       * make_exception_branch_test.sh: added
+       support to test generator to specify
+       the expected result.
+
+       * make_tests.sh: some results for
+       make_exception_branch_test.sh were
+       wrong, fixed that.
+
+       * make_tests.sh: added some tests
+       to beq and bge.
+
+       * make_tests.sh added tests for br.
+
+2007-12-20 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_exception_sequence.il: new test
+       for what blocks take an exception on
+       stack at the begin.
+
+2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_empty_catch_block.il
+       * invalid_empty_fault_block.il
+       * invalid_empty_filter_block.il
+       * invalid_empty_finally_block.il
+       * invalid_empty_handler_block.il
+       * invalid_empty_try_block.il
+       tests for empty protected blocks.
+
+       * invalid_exception_blocks_order.il:
+       test for the required ordering of exception
+       clauses.
+
+       * invalid_finally_block_overlap_try_block.il
+       * invalid_try_block_includes_catch_block.il
+       * invalid_try_block_inside_filter_block.il
+       tests for ill formed exception clauses.
+               
+       * invalid_fallout_of_filter_block.il
+       * invalid_fallout_of_handler_block.il
+       * invalid_fallthru_into_filter_block.il
+       * invalid_fallthru_into_handler_block.il
+       * unverifiable_fallout_of_catch_block.il
+       * unverifiable_fallout_of_fault_block.il
+       * unverifiable_fallout_of_finally_block.il
+       * unverifiable_fallout_of_try_block.il
+       * unverifiable_fallthru_into_catch_block.il
+       * unverifiable_fallthru_into_fault_block.il
+       * unverifiable_fallthru_into_finally_block.il
+       * valid_end_try_block_with_throw.il:
+       tests for fallthru in and out of protected blocks.
+
+2007-12-18 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for filter
+
+       * make_filter_test.sh: new test generator
+
+2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for endfilter
+
+       * make_endfilter_test.sh: new test generator
+
+2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * Makefile: add support to check strict tests.
+
+       * AssemblyRunner.cs: start using peverify as part of the
+       process. Support for strict tests.
+
+2007-12-12 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_filter_ends_at_endfilter_1.il: tests if the
+       filter block is limited by the start of the associated 
+       handler clause or it is limited by the ocurrence of
+       endfilter. These 3 tests show that even if the endfilter
+       instruction must be the last, it doesn't define the end
+       of the filter block.
+
+       * invalid_filter_ends_at_endfilter_2.il: same
+
+       * invalid_filter_ends_at_endfilter_3.il: same
+
+       * make_test.sh: added tests for endfinally / endfault
+       * make_endfinally_test.sh: new test generator
+
+2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for rethrow
+       * make_rethrow_test.sh: new test generator
+
+2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for throw
+       * make_throw_test.sh: new test generator
+
+2007-12-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for castclass and isinst
+       * make_cast_test.sh: new test generator
+
+2007-12-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for stelem.X
+       * make_stelem_test.sh: new test generator
+
+2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for ldelem
+
+2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: fixed compilation issues with some tests.
+
+2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for ldelem.X
+       * make_ldelem_test.sh: new test generator
+
+2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for ldelema
+       * make_ldelema_test.sh: new test generator
+
+2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_test.sh: added tests for ldlen
+       * make_ldlen_test.sh: new test generator
+
+2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_array_method.cs: test for invoking array methods.
+
+2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: tests for the return type of the invoked method.
+       tests for passing typedbyref as param.
+
+       * make_obj_store_test.sh: add new optional script parameter to tell
+       if class fields should be generated. This fix some bogus tests using
+       typedbyref.
+
+2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
+       * make_tests.sh: unbox_byref_like test was flawed, it was not testing
+       the proper unverifable condition.
+
+2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_unary_test.sh: fixed an invalid struct that has no fields,
+       this was not the subject of the tests.
+       * make_newobj_test.sh: added, generate tests for newobj.
+       * make_tests.sh: added the new tests for newobj and some corner
+       cases of local/arg load/store.
+
+
+2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_store_indirect_test.sh: added, generate tests for stind.X.
+       * make_tests.sh: added the new tests for ldind.X.
+
+2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * make_tests.sh: added the new tests for ops mixing Int32 and IntPtr, disabled
+       the overlapped tests for now
+       * make_unary_test.sh: disabled the overlapped tests for now
+       * make_field_store_test.sh: sames
+
 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
 
        * make_load_indirect_test.sh: added, generate tests for ldind.X.