[m-dev.] .NET back-end test results

Fergus Henderson fjh at cs.mu.OZ.AU
Sun Oct 20 09:38:49 AEST 2002


I've run the tests in the `il' grade and analyzed the results.
Here are the results of my analysis.

First, the number of distinct bug symptoms detected:

	Bugs in the test suite: 5
	Bugs in the .NET back-end: 8
	Unimplemented features: 7

So, at one patch per bug symptom or unimplemented feature,
we are just 20 patches away from passing all the tests ;-)
Of course, it may be the case that the same symptoms are being
generated by more than one bug, in which case more bug-fixes
will be needed.  Also, there may be some additional bugs which
show up once we've fixed all of those.

Second, the number of test case failures.
Note that each bug can in general cause many test case failures.

Passed test cases: 280
Failed test cases: 459 total
   Spurious failures: 291 subtotal
	    152 FAILED.VALID
	     80 FAILED.INVALID
	     59 FAILED.NO_CLAUSES
   Failures as a result of genuine bugs: 117 subtotal
	     65 FAILED.UNDEFINED_CLASS
	     23 FAILED.INVALID_CAST
	     29 FAILED.MISC
   Failures due to features that are not yet implemented,
   for which we output an appropriate "sorry" message: 51
	     51 FAILED.SORRY

Inclued below is a detailed analysis.

SPURIOUS FAILURES

S1
- test/valid/* report spurious failures due to Mmakefile making
  incorrect assumption that we generate `.o' files (FAILED.VALID)

S2
- test/invalid/* report spurious failures due to the Mmakefile not catering
  for --il implying --intermodule-optimization (FAILED.INVALID)

S3
- lots of tests fail due to the use of C foreign clauses (FAILED.NO_CLAUSES)
  tests/general/impure_foreign is a special case of this;
  it fails at run-time because the Mercury fall-back clauses just call error/1.
  tests/hard_coded/pragma_import and tests/hard_coded/pragma_export are
  similar.

S4
- tests/hard_coded/*.split (not supported for il grade)

S5
- tests/hard_coded/special_character fails, due to '\0321' in the
  source code getting converted to octal 245 in the output file.
  This is a bug in the test case; it assumes that the internal
  representation is the same as the file representation, which is
  not the case for .NET.

BUGS

B1
- tests/hard_coded/term_io_test fails:
  gets syntax errors at run-time, cause unknown.

B2
- tests/general/commutative fails:
  tests/hard_coded/agg fails:
  invalid cast
  Likewise for lots of others (FAILED.INVALID_CAST)

B3
- tests/general/interpreter fails, due to problem with equivalence types;
  the argument types for the unify & compare predicates for equivalence types
  are invalid (undefined)
  Likewise for lots of others (FAILED.UNDEFINED_CLASS)

B4
- tests/general/string_to_float fails,
  because string__to_float throws an exception rather than failing

B5
- tests/general/string_format_test fails, due to various formatting errors
  (e.g. no left justification, missing 0x prefixes, not truncating).
  Likewise for
	  tests/hard_coded/float_rounding_bug
	  tests/hard_coded/float_reg
	  tests/hard_coded/arbitrary_constraint_class
	  tests/hard_coded/arbitrary_constraint_pred_1
	  tests/hard_coded/arbitrary_constraint_pred_2
	  tests/hard_coded/module_test

B6
- tests/hard_coded/*foreign_type* fail, due to not finding `mercury.dll'.
  (XXX probably due to me not installing it properly)

B7
- tests/hard_coded/no_fully_strict fails,
  because uncaught exceptions do not result in a non-zero exit status
  Likewise for
  	tests/hard_coded/uncaught_exception

B8
- tests/hard_coded/no_warn_singleton fails,
  due to determinism warning for table_io_copy_io_state from table_builtin.m
  Likewise for
  tests/warnings/arg_order_rearrangement.

NOT YET IMPLEMENTED (FAILED.SORRY):

N1
- lots of tests fail due to
  type_ctor_name_and_args NYI

N2
- tests/general/double_match fails:
  io__command_line_arguments NYI

N3
- tests/general/environment fails:
  io__set_environment_variable NYI

N4
- io__read_line_as_string_2 NYI

N5
- tests/general/map_corresponding fails:
  Software Error: rtti_implementation: unimplemented: tuple comparisons
  Likewise for tests/hard_coded/existential_tuples
  tests/hard_coded/higher_order_type_manip
  tests/hard_coded/pretty_printing
  tests/hard_coded/tuple_test
  tests/hard_coded/type_ctor_desc

N6
- tests/general/io_regression fails:
  io__alloc_buffer NYI

N7
- tests/hard_coded/random_permutation random_simple fail:
  MissingMethodException due to copy/2 not being implemented
  Likewise for
  	tests/hard_coded/stable_sort
	tests/hard_coded/random_permutation
	tests/hard_coded/existential_rtti

--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list