diff --git a/cobc/error.c b/cobc/error.c index cc1e24ebb..2e7d72898 100644 --- a/cobc/error.c +++ b/cobc/error.c @@ -74,7 +74,7 @@ cobc_slashify (const char *src) if (is_test < 0) is_test = !!getenv ("COB_IS_RUNNING_IN_TESTMODE"); - if (is_test){ + if (0 && is_test){ int i; int len = strlen (src); char *dst = cobc_malloc (len+1); diff --git a/tests/testsuite.src/used_binaries.at b/tests/testsuite.src/used_binaries.at index 49c0ef157..5786ea884 100644 --- a/tests/testsuite.src/used_binaries.at +++ b/tests/testsuite.src/used_binaries.at @@ -279,6 +279,30 @@ AT_CHECK([$GREP 'PARAGRAPH_00_l_4:' prog.c], [0], ignore, []) AT_CHECK([$GREP 'PARAGRAPH_EX_l_7:' prog.c], [0], ignore, []) AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [bluBb END], []) +AT_CAPTURE_FILE([prog.d]) +AT_CHECK([$COBC -I sub/copy prog.cob -ext=cpy -o prog.i -MF prog.d -MT "prog.c prog.h" -MT prog$COB_EXE_EXT -MT prog.$COB_OBJECT_EXT -MT prog.i -fsyntax-only], [0], [], []) +AT_CHECK([$GREP 'prog.c prog.h ' prog.d], [0], ignore, []) +AT_CHECK([$GREP ' prog.i:' prog.d], [0], ignore, []) +AT_CHECK([$GREP 'sub/copy/PROC.cpy' prog.d], [0], ignore, [], [ + # Previous test "failed" --> no entry with slash available, check backslash for this and following tests + AT_CHECK([$GREP ' sub\\copy\\PROC.cpy \\' prog.d], [0], ignore, []) + AT_CHECK([$GREP ' sub\\PROCE.cpy' prog.d], [0], ignore, []) + AT_CHECK([$GREP 'sub\\copy\\PROC.cpy:' prog.d], [0], ignore, []) + AT_CHECK([$GREP 'sub\\PROCE.cpy:' prog.d], [0], ignore, []) +], [ + AT_CHECK([$GREP ' sub/copy/PROC.cpy \\' prog.d], [0], ignore, []) + AT_CHECK([$GREP ' sub/PROCE.cpy' prog.d], [0], ignore, []) + AT_CHECK([$GREP 'sub/copy/PROC.cpy:' prog.d], [0], ignore, []) + AT_CHECK([$GREP 'sub/PROCE.cpy:' prog.d], [0], ignore, []) +]) + +# test again with trailing slash which should not result in different files +AT_CHECK([$COBC -I sub/copy/ prog.cob -ext=cpy -o prog.i -MF prog.d -MT "prog.c prog.h" -MT prog$COB_EXE_EXT -MT prog.$COB_OBJECT_EXT -MT prog.i -fsyntax-only], [0], [], []) +AT_CHECK([$GREP 'sub/copy/PROC.cpy' prog.d], [0], ignore, [], [ + # Previous test "failed" --> no entry with slash available, check backslash for this test + AT_CHECK([$GREP 'sub\\copy\\PROC.cpy' prog.d], [0], ignore, []) +]) + AT_CLEANUP @@ -372,28 +396,13 @@ AT_DATA([prog.cob], [ EXIT PROGRAM. ]) -AT_CHECK([TMPDIR="" TMP="notthere" TEMP="" $COMPILE prog.cob 2> compiler.output], [0], [], -[],[ - # On Windows, we get a failure from gcc, so the binary is not created, the stderr is mixed and exit code is 1. - AT_CHECK([grep libcob: compiler.output], [0], [libcob: warning: Temporary directory TMP is invalid, adjust TMPDIR! -]) - ], - [ - AT_CHECK([cat compiler.output], [0], [libcob: warning: Temporary directory TMP is invalid, adjust TMPDIR! -]) - AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [OK], []) - ]) - -AT_CHECK([TMPDIR="" TMP="" TEMP="./prog.cob" $COMPILE prog.cob 2> compiler.output], [0], [], -[],[ - AT_CHECK([grep libcob: compiler.output], [0], [libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR! +AT_CHECK([TMPDIR="" TMP="notthere" TEMP="" $COMPILE prog.cob], [0], [], +[libcob: warning: Temporary directory TMP is invalid, adjust TMPDIR! ]) - ], - [ - AT_CHECK([cat compiler.output], [0], [libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR! +AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [OK], []) +AT_CHECK([TMPDIR="" TMP="" TEMP="./prog.cob" $COMPILE prog.cob], [0], [], +[libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR! ]) - ]) - # TMPDIR is only checked when actually needed which is currently only the case # for SORT #AT_CHECK([TMPDIR="./prog.cob" $COBCRUN_DIRECT ./prog], [0], [OK], @@ -1072,16 +1081,15 @@ AT_CHECK([$COBC -fdiagnostics-plain-output -fdiagnostics-show-caret -Wno-others ]]) AT_CHECK([$COMPILE -fdiagnostics-absolute-paths -Wall prog.cob 2> compiler.output], [1]) -AT_CAPTURE_FILE([compiler.output]) - -AT_CHECK([echo "$PWD/prog.cob:7: error: CRUD.CPY: No such file or directory" > expected.output]) -AT_CHECK([echo "$PWD/prog.cob:6: warning: numeric value is expected" >> expected.output]) -AT_CHECK([echo "$PWD/prog.cob:14: warning: ignoring redundant ." >> expected.output]) -AT_CAPTURE_FILE([expected.output]) -AT_CHECK([[cat compiler.output | tr '[:upper:]' '[:lower:]' | tr -d ':/\\' > compiler.output2]]) -AT_CHECK([[cat expected.output | tr '[:upper:]' '[:lower:]' | tr -d ':/\\' > expected.output2]]) -AT_CHECK([diff compiler.output2 expected.output2]) +# note: -fdiagnostics-absolute-paths will show the realpath, +# so for MSYS/MSVC builds that will be x:\something\prog.cob, not the output of PWD, +# but the _return_path function from atlocal may adjust that +AT_CHECK([cat compiler.output | tr '\\' '/' | $SED "s|$(_return_path "$(pwd)")|DIR|"], [0], +[DIR/prog.cob:7: error: CRUD.CPY: No such file or directory +DIR/prog.cob:6: warning: numeric value is expected +DIR/prog.cob:14: warning: ignoring redundant . +], [], [echo set: $SED "s|$(_return_path "$(pwd)")|DIR|"]) AT_CLEANUP @@ -1091,13 +1099,13 @@ AT_SETUP([check include header file]) AT_DATA([filec.h], [ /* COB_EXT_IMPORT will be defined by libcob.h up-front */ -COB_EXT_IMPORT void rename (const char *, const char*); +COB_EXT_IMPORT void f (char *, long); ]) AT_DATA([prog.cob], [ IDENTIFICATION DIVISION. PROGRAM-ID. prog. PROCEDURE DIVISION. - CALL "rename" USING "Hello". + CALL "f" USING "Hello". ]) # dynamic call - program seems correct @@ -1111,8 +1119,10 @@ AT_DATA([prog2.cob], [ IDENTIFICATION DIVISION. PROGRAM-ID. prog. DATA DIVISION. + WORKING-STORAGE SECTION. + 01 long USAGE BINARY-C-LONG. PROCEDURE DIVISION. - CALL "rename" USING "Hello" "Hello2" RETURNING NOTHING. + CALL "f" USING "Hello" BY VALUE long RETURNING NOTHING. ]) # note: we likely need to build an import library for some environments @@ -1143,22 +1153,22 @@ AT_CHECK([$COMPILE_MODULE -I . --include "filec.h" -fstatic-call prog2.cob -o pr # * putting RETURNING NOTHING is not supported # * putting RETURNING OMITTED is ok, but triggers a warning (see stderr) -AT_DATA([rename.copy], [ +AT_DATA([f.copy], [ IDENTIFICATION DIVISION. - PROGRAM-ID. rename PROTOTYPE. + PROGRAM-ID. f PROTOTYPE. DATA DIVISION. LINKAGE SECTION. 01 a PIC X(20). - 01 b PIC X(20). - PROCEDURE DIVISION USING a b RETURNING OMITTED. + 01 b BINARY-C-LONG. + PROCEDURE DIVISION USING a BY VALUE b RETURNING OMITTED. END PROGRAM rename. ]) -AT_CHECK([$COMPILE_MODULE -Wno-unfinished --copy "rename.copy" -fstatic-call prog2.cob -o prog2c], [0], [], +AT_CHECK([$COMPILE_MODULE -Wno-unfinished --copy "f.copy" -fstatic-call prog2.cob -o prog2c], [0], [], [prog2.cob:8: warning: unexpected RETURNING item ], [ # Previous test "failed" --> retry with import library - AT_CHECK([$COMPILE_MODULE -Wno-unfinished --copy "rename.copy" -fstatic-call -L. -lfilec prog2.cob -o prog2c], [0], ignore, ignore)] + AT_CHECK([$COMPILE_MODULE -Wno-unfinished --copy "f.copy" -fstatic-call -L. -lfilec prog2.cob -o prog2c], [0], ignore, ignore)] ) AT_CLEANUP