1. All translated tests failing - invalid routine id / error with status 1
- Posted by ghaberek (admin) Apr 12, 2018
- 1386 views
I'm getting the following messages while running make test after building on Linux (CentOS 7).
Fatal run-time error: invalid routine id passed to crash_routine()
FAILURE: [test name] EUPHORIA error with status 1
What did I do wrong?
-Greg
2. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by jmduro Apr 12, 2018
- 1324 views
I installed a CentOS 7 x64 VM on VirtualBox but to help yu I must first be able to build OE 4.1 and I need minimal instructions to do that cause it fails otherwise.
Jean-Marc
3. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by jmduro Apr 12, 2018
- 1368 views
I have been able to compile EU 4.10 development version by tinkering a lot:
- I copied 4.1.0 standard to both /euphoria and /usr/share/euphoria
- I ran mkdir -p ./build/include/ after running make first because it failed
- I copied /usr/share/euphoria/bin/eu.a to ./build/eu.a because it couldn't be built correctly
make test ends on following output:
Test results summary: FAIL: t_abadcase.e FAIL: bound t_abadcase-bound FAIL: translated t_abadcase-translated FAIL: t_callc.e FAIL: bound t_callc-bound FAIL: translated t_callc-translated FAIL: t_declasgn_wrning.e FAIL: t_machine.e FAIL: bound t_machine-bound FAIL: t_map.e FAIL: bound t_map-bound FAIL: translated t_map-translated FAIL: t_net_http.e FAIL: bound t_net_http-bound FAIL: translated t_net_http-translated FAIL: t_warning.e FAIL: t_c_overflow_sbni.e FAIL: t_c_overflow_sci1.e FAIL: t_c_overflow_sci2.e FAIL: t_c_overflow_sci3.e FAIL: t_c_overflow_sci4.e FAIL: t_c_overflow_sdnf.e FAIL: t_c_overflow_sdni.e FAIL: t_c_overflow_shni.e FAIL: t_c_overflow_soni.e FAIL: t_c_underflow_sci.e FAIL: t_c_underflow_sdn.e Files (run: 406) (failed: 27) (93% success)
There are many different errors that lead to failures.
Jean-Marc
4. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by ghaberek (admin) Apr 12, 2018
- 1329 views
I installed a CentOS 7 x64 VM on VirtualBox but to help yu I must first be able to build OE 4.1 and I need minimal instructions to do that cause it fails otherwise.
Sorry about that. I just pushed my fixes to Makefile.gnu. If you pull the latest copy and it should build correctly.
- Install "Development Tools" group and Mercurial.
- sudo yum group install "Development Tools"
- sudo yum install mercurial
- Download the Euphoria 4.1.0 Beta 2 and extract it to /usr/local.
- wget http://sourceforge.net/projects/rapideuphoria/files/Euphoria/4.1.0-beta2/euphoria-4.1.0-Linux-x64-57179171dbed.tar.gz
- sudo tar xzvf euphoria-4.1.0-Linux-x64-57179171dbed.tar.gz -C /usr/local
- Add /usr/local/euphoria-4.1.0-Linux-x64/bin to your PATH in .bash_profile.
- sed -i 's#^PATH=\(.*\)#PATH=\1:/usr/local/euphoria-4.1.0-Linux-x64/bin#g' .bash_profile
- Note: Log out and back in or close/reopen your shell for this to take effect.
- Check out the latest source.
- hg clone http://scm.openeuphoria.org/hg/euphoria euphoria-hg
- Change to the source directory, then run configure and make and make tests.
- cd euphoria-hg/source/
- ./configure --target LINUX --release release --arch x86_64
- make
- make tests <-- this will fail
-Greg
5. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by ghaberek (admin) Apr 12, 2018
- 1330 views
I have been able to compile EU 4.10 development version by tinkering a lot:
- I copied 4.1.0 standard to both /euphoria and /usr/share/euphoria
- I ran mkdir -p ./build/include/ after running make first because it failed
- I copied /usr/share/euphoria/bin/eu.a to ./build/eu.a because it couldn't be built correctly
Yes, these are the things I have fixed Makefile.gnu.
-Greg
6. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by jmduro Apr 13, 2018
- 1296 views
Thank you Greg,
I did not find the error but I think it is related to the -d CRASH command-line option.
The crash routine is set when the option is not set. For example, I get following error:
FAIL: translated t_881-1-translatedbecause I got previously this error:
translating t_881-1.e: Fatal run-time error: invalid routine id passed to crash_routine()
This is what I find at the end of include/unittest.e:
ifdef not CRASH then function test_crash( object o ) test_fail( "unittesting crashed" ) test_report() o = 0 return o end function error:crash_routine( routine_id( "test_crash" ) ) end ifdef
Jean-Marc
7. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by jmduro Apr 13, 2018
- 1343 views
Explanation might be there in eutest.ex:
488 sequence crash_option = "" 489 if match("t_c_", filename) = 1 then 490 crash_option = " -d CRASH " 491 end if
May be crashing files should not match "t_c_" in their filename.
Jean-Marc
8. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by jimcbrown (admin) Apr 13, 2018
- 1330 views
Explanation might be there in eutest.ex:
488 sequence crash_option = "" 489 if match("t_c_", filename) = 1 then 490 crash_option = " -d CRASH " 491 end if
May be crashing files should not match "t_c_" in their filename.
Jean-Marc
It's the other way around. If a test is supposed to crash, it should have "t_c_" in the file name and it should not define the crash_routine.
Basically Greg was getting tests that were supposed to have passed without crashing to crash. These are the ones that already do not have "t_c_" in their name.
9. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by ghaberek (admin) Apr 13, 2018
- 1268 views
Okay, I think I'm sniffing up the right tree here. I added a couple lines to the end of std/unittest.e. It looks like the translator is not getting the correct routine id for test_crash(). The interpreted and bound tests print test_crash_id = 7 but the translated test prints test_crash_id = 0. But at this point I'm not sure why.
ifdef not CRASH then function test_crash( object o ) test_fail( "unittesting crashed" ) test_report() o = 0 return o end function integer test_crash_id = routine_id( "test_crash" ) printf( 1, "test_crash_id = %d\n", test_crash_id ) error:crash_routine( test_crash_id ) end ifdef
interpreting t_881-1.e: test_crash_id = 7 binding t_881-1.e: deleted 335 unused routines and 1386 unused variables. You may now run ./t_881-1-bound test_crash_id = 7 translating t_881-1.e:test_crash_id = 0 Fatal run-time error: invalid routine id passed to crash_routine() FAILURE: t_881-1 EUPHORIA error with status 1 Test results summary: FAIL: translated t_881-1-translated Files (run: 3) (failed: 1) (67% success)
-Greg
10. Re: All translated tests failing - invalid routine id / error with status 1
- Posted by ghaberek (admin) Apr 21, 2018
- 1164 views
I'm still having trouble figuring this out. It seems like 0 is a valid routine I'd in translated code, but it's as if the comparison in the if block isn't evaluating correctly, which is strange.
I'd appreciate any help on this. I feel like I'm stuck. Can anyone even reproduce my errors above?
-Greg