tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] test 104 fails on windows: missing mkstemps


From: avih
Subject: Re: [Tinycc-devel] test 104 fails on windows: missing mkstemps
Date: Tue, 18 Jun 2019 19:00:41 +0000 (UTC)

Well, the diffs are not really diffs. They just moved. Looks like `sort` didn't work as expected, or maybe it's some locale issue (mine is en_US.UTF-8 at cygwin, and en-US at windows).

A script should handle this too, possibly with LC_ALL=C (and make sure the reference file is generated with the same sort locale).

If someone could split it to program+script then I can test the test in various use cases and make adjustment if required (I'm terrible with Makefiles but reasonably useful with shell).


On Tuesday, June 18, 2019 9:50 PM, avih <address@hidden> wrote:


After commit d39c49db  Remove empty conditional _WIN32 code

and some hacking of the code (it's an unhealthy mix of basically running a shell script from a program compiled using tcc for windows), I get the following 2 diffs:

+inst_extern_inline_postdeclared
+inst_extern_inline_predeclared

and

-inst_extern_inline_postdeclared
-inst_extern_inline_predeclared

I'm running it in a cygwin environment and the tools (nm, sort, gawk) are cygwin tools, while the tested tcc is normal mingw tcc for windows (which I build in a reproducible way using my script).

Regardless of these two diffs, I think the test should be composed of a program and a normal shell script (which uses mktemp, awk, sort etc), so that the paths are consistent between the tools.

Also, the TCC path is hardcoded at the test, but in fact it's parametric at the makefile as $(TCC), so it's better to use that instead (but then there are forward/backward slash issues which need to be handled too, because system(...) in win32 expects backward slashes, but $(TCC) at the makefile has forward slashes). Making this a program + a script should implicitly solve this issue as well.

After all, a working shell+tools is assumed for this test anyway, but the current way of using system(...) from a win32 program (compiled using tcc for windows) invokes a windows shell which can be inconsistent with the actual shell where `make` runs.

Avi




On Tuesday, June 18, 2019 12:11 AM, avih <address@hidden> wrote:


Hmm.. I now see that test 104 uses signal and nm, so it might require some effort to make it work on windows.

Nevertheless, considering the recent breakage specifically on windows from related code, I think it would be beneficial if this test could be made to work on windows,


On Monday, June 17, 2019 11:54 PM, avih <address@hidden> wrote:


Wouldn't it be better to just create a known/fixed file instead? (assuming the test doesn't need explicitly mkstemps, I didn't look at its actual code).


On Monday, June 17, 2019 11:50 PM, Christian Jullien <address@hidden> wrote:


Yes it has been previously reported.
 
Michael, as said in a private mail, I agree with you that this test should be skipped on Windows.
 
C.
 
From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=address@hidden] On Behalf Of avih
Sent: Monday, June 17, 2019 22:46
To: Tinycc-devel Mailing List
Subject: [Tinycc-devel] test 104 fails on windows: missing mkstemps
 
Test 104 log on windows (both tcc32 and tcc 64):
 
Test: 104_inline_test...
--- 104_inline_test.expect      2019-06-17 23:42:00.162697100 +0300
+++ 104_inline_test.output      2019-06-17 23:42:35.531550400 +0300
@@ -1,25 +1,2 @@
-extern_extern_postdeclared
-extern_extern_postdeclared2
-extern_extern_predeclared
-extern_extern_predeclared2
-extern_extern_prepostdeclared
-extern_extern_prepostdeclared2
-extern_extern_undeclared
-extern_extern_undeclared2
-extern_postdeclared
-extern_postdeclared2
-extern_predeclared
-extern_predeclared2
-extern_prepostdeclared
-extern_undeclared
-extern_undeclared2
-inst2_extern_inline_postdeclared
-inst2_extern_inline_predeclared
-inst3_extern_inline_predeclared
-inst_extern_inline_postdeclared
-inst_extern_inline_predeclared
-main
-noinst_extern_inline_func
-noinst_extern_inline_postdeclared
-noinst_extern_inline_postdeclared2
-noinst_extern_inline_undeclared
+104_inline_test.c:30: warning: implicit declaration of function 'mkstemps'
+tcc: error: undefined symbol 'mkstemps'
make[1]: *** [Makefile:70: 104_inline_test.test] Error 1
Test: 105_local_extern...
make[1]: Target 'all' not remade because of errors.
 









reply via email to

[Prev in Thread] Current Thread [Next in Thread]