Mercury-Language / mercury

The Mercury logic programming system.
Other
904 stars 54 forks source link

Tests failing on musl/Alpine Linux #96

Open craftyguy opened 3 years ago

craftyguy commented 3 years ago

The following tests fail on Alpine Linux (edge) and musl 1.2.2:

hard_coded/dst_test
hard_coded/foreign_import_module
mmc_make/complex_test

runtests.errs:

MERCURY_OPTIONS=                
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
mmc --generate-dependencies --grade hlc.gc    --flags ../TESTS_FLAGS     dst_test > dst_test.dep_err 2>&1
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
mmc --make-interface --grade hlc.gc    --flags ../TESTS_FLAGS     dst_test
mmc --compile-to-c --grade hlc.gc    --flags ../TESTS_FLAGS     dst_test > dst_test.err 2>&1
mgnuc --grade hlc.gc       --      -c dst_test.c -o dst_test.o
mgnuc --grade hlc.gc       --      -c dst_test_init.c -o dst_test_init.o
ml --grade hlc.gc             --    -o dst_test dst_test_init.o \
        dst_test.o \            

TZ="Australia/Melbourne" ./dst_test > dst_test.out 2>&1 || \
        { grep . dst_test.out /dev/null; exit 1; }
Comparing dst_test.out with dst_test.exp*,
        results in dst_test.res
** dst_test.out did not match the expected output
** (closest match was dst_test.res1)
--- dst_test.exp        2019-09-19 12:15:13.000000000 +0000
+++ dst_test.out        2021-07-13 03:44:56.210934458 +0000
@@ -1,31 +1,31 @@               
-start DST succeeded            
-end DST succeeded              
+start DST failed               
+end DST failed                 

 Local: Sun Oct 26 01:59:00 2003                        
-GMT:   Sat Oct 25 15:59:00 2003                                
+GMT:   Sun Oct 26 01:59:00 2003                                                          
 Local: Sun Oct 26 03:00:00 2003
-GMT:   Sat Oct 25 16:00:00 2003                                                           
+GMT:   Sun Oct 26 03:00:00 2003                                                                                                                                                                                     
 Local: Sun Oct 26 03:01:00 2003                                                          
-GMT:   Sat Oct 25 16:01:00 2003                                                           
+GMT:   Sun Oct 26 03:01:00 2003                                                       

 Local: Sun Mar 28 01:59:00 2004                                                        
-GMT:   Sat Mar 27 14:59:00 2004                                                                 
+GMT:   Sun Mar 28 01:59:00 2004             
 Local: Sun Mar 28 02:00:00 2004             
-GMT:   Sat Mar 27 15:00:00 2004
+GMT:   Sun Mar 28 02:00:00 2004                                      
 Local: Sun Mar 28 02:01:00 2004                                                         
-GMT:   Sat Mar 27 15:01:00 2004                                                                                                                                                                                     
+GMT:   Sun Mar 28 02:01:00 2004                                                            

 Local: Sun Mar 28 02:59:00 2004                                             
-GMT:   Sat Mar 27 15:59:00 2004                                                          
+GMT:   Sun Mar 28 02:59:00 2004
 Local: Sun Mar 28 02:00:00 2004                                                         
-GMT:   Sat Mar 27 16:00:00 2004                                                                                                                                                                                                                                                                                                                                                                                                          +GMT:   Sun Mar 28 02:00:00 2004                                                                                                                                                                                                                                                                                                                                                                                                           Local: Sun Mar 28 02:01:00 2004                                                        
-GMT:   Sat Mar 27 16:01:00 2004                                                         
+GMT:   Sun Mar 28 02:01:00 2004                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Local: Sun Mar 28 02:59:00 2004      
-GMT:   Sat Mar 27 16:59:00 2004                                   
+GMT:   Sun Mar 28 02:59:00 2004                                             
 Local: Sun Mar 28 03:00:00 2004                                               
-GMT:   Sat Mar 27 17:00:00 2004
+GMT:   Sun Mar 28 03:00:00 2004                           
 Local: Sun Mar 28 03:01:00 2004                                    
-GMT:   Sat Mar 27 17:01:00 2004                                                        
+GMT:   Sun Mar 28 03:01:00 2004            

make[5]: *** [../Mmake.common:138: dst_test.res] Error 1
make[5]: Target 'dst_test.runtest' not remade because of errors.
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
MERCURY_OPTIONS=
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
mmc --generate-dependencies --grade hlc.gc    --flags ../TESTS_FLAGS     foreign_import_module > foreign_import_module.dep_err 2>&1
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
mmc --make-interface --grade hlc.gc    --flags ../TESTS_FLAGS     foreign_import_module
mmc --compile-to-c --grade hlc.gc    --flags ../TESTS_FLAGS     foreign_import_module > foreign_import_module.err 2>&1
mgnuc --grade hlc.gc       --      -c foreign_import_module.c -o foreign_import_module.o
foreign_import_module.c:75:10: fatal error: foreign_import_module_2.mh: No such file or directory
   75 | #include "foreign_import_module_2.mh"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [/tmp/mmake.s1JPss:3358: foreign_import_module.o] Error 1
mmc --make-interface --grade hlc.gc    --flags ../TESTS_FLAGS     foreign_import_module_2
mmc --compile-to-c --grade hlc.gc    --flags ../TESTS_FLAGS     foreign_import_module_2 > foreign_import_module_2.err 2>&1
mgnuc --grade hlc.gc       --      -c foreign_import_module_2.c -o foreign_import_module_2.o
mgnuc --grade hlc.gc       --      -c foreign_import_module_init.c -o foreign_import_module_init.o
make[5]: Target 'foreign_import_module.runtest' not remade because of errors.
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/hard_coded'
MERCURY_OPTIONS=
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/mmc_make'
{ echo MCFLAGS += '--grade hlc.gc    --flags ../TESTS_FLAGS --use-subdirs    '; echo MCFLAGS += ' '; echo CFLAGS += '    '; echo JAVACFLAGS += '   '; echo CSCFLAGS += '   '; echo C2INITARGS += '    '; echo MLLIBS += '   '; echo MLOBJS += '  '; echo LDFLAGS += '  '; echo LD_LIBFLAGS += '  '; echo EXTRA_LIBRARIES += ''; echo EXTRA_LIB_DIRS += ''; echo LIBGRADES = 'hlc.gc hlc.gc.memprof hlc.gc.prof hlc.gc.tr hlc.par.gc reg.gc reg.gc.debug.stseg reg.gc.decldebug.stseg reg.gc.prof reg.gc.profdeep.stseg reg.gc.tr.debug.stseg reg.par.gc.stseg  '; echo INSTALL_PREFIX = '/usr'; echo LINKAGE = 'shared'; echo MERCURY_LINKAGE = 'shared'; } | mmc --make --options-file - complex_test.depend
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/mmc_make'
make[5]: Entering directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/mmc_make'
{ echo MCFLAGS += '--grade hlc.gc    --flags ../TESTS_FLAGS --use-subdirs    '; echo MCFLAGS += ' '; echo CFLAGS += '    '; echo JAVACFLAGS += '   '; echo CSCFLAGS += '   '; echo C2INITARGS += '    '; echo MLLIBS += '   '; echo MLOBJS += '  '; echo LDFLAGS += '  '; echo LD_LIBFLAGS += '  '; echo EXTRA_LIBRARIES += ''; echo EXTRA_LIB_DIRS += ''; echo LIBGRADES = 'hlc.gc hlc.gc.memprof hlc.gc.prof hlc.gc.tr hlc.par.gc reg.gc reg.gc.debug.stseg reg.gc.decldebug.stseg reg.gc.prof reg.gc.profdeep.stseg reg.gc.tr.debug.stseg reg.par.gc.stseg  '; echo INSTALL_PREFIX = '/usr'; echo LINKAGE = 'shared'; echo MERCURY_LINKAGE = 'shared'; } | mmc --make --options-file - complex_test
Making Mercury/int3s/complex_test.int3
** Error reading file `complex_numbers.m' to generate dependencies.
** Module `complex_numbers' is imported or included by module `complex_test'.
mercury_compile: cannot find source for module `complex_numbers' in directories
  `.'
make[5]: *** [/tmp/mmake.C0T9ws:1125: complex_test] Error 1
make[5]: Target 'complex_test.runtest' not remade because of errors.
make[5]: Leaving directory '/home/pmos/build/src/mercury-srcdist-20.06.1/tests/mmc_make'

Mercury is built with:

./configure \
                --build=$CBUILD \
                --host=$CHOST \
                --prefix=/usr \
                --mandir=/usr/share/man \
                --infodir=/usr/share/info \
                --disable-inefficient-grades

make PARALLEL="$MAKEFLAGS"
make DESTDIR="$pkgdir" \
                INSTALL_PREFIX="$pkgdir"/usr \
                INSTALL_MAN_DIR="$pkgdir"/usr/share/man \
                INSTALL_INFO_DIR="$pkgdir"/usr/share/info \
                MERCURY_COMPILER="$pkgdir"/usr/bin/mercury_compile \
                MERCURY_CONFIG_DIR="$pkgdir"/usr/lib/mercury \
                PARALLEL="$MAKEFLAGS" \
                LIBGRADES="hlc.gc" \
                install

and per tests/README, I'm just doing this to run the test:

$ cd tests
$ mmake

The foreign import failure is confusing, that file exists in tests/hard_coded/foreign_import_module_2.mh