]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
test: Verify that UNCACHED_ERR_FD works
authorJoel Rosdahl <joel@rosdahl.net>
Sun, 28 Jan 2018 15:06:36 +0000 (16:06 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 28 Jan 2018 15:06:36 +0000 (16:06 +0100)
test.sh

diff --git a/test.sh b/test.sh
index b2d6bf9f007ae29c3ea5121904a861b100894e86..d750afebd3475741ff638ff529b95ccccbe379c8 100755 (executable)
--- a/test.sh
+++ b/test.sh
@@ -1076,6 +1076,38 @@ EOF
     expect_stat 'cache hit (preprocessed)' 0
     expect_stat 'cache miss' 0
     expect_stat 'unsupported code directive' 1
+
+    # -------------------------------------------------------------------------
+    TEST "UNCACHED_ERR_FD"
+
+    cat >compiler.sh <<'EOF'
+#!/bin/sh
+if [ "$1" = "-E" ]; then
+    echo preprocessed
+    printf ${N}Pu >&$UNCACHED_ERR_FD
+else
+    echo compiled >test1.o
+    printf ${N}Cc >&2
+    printf ${N}Cu >&$UNCACHED_ERR_FD
+fi
+EOF
+    chmod +x compiler.sh
+
+    N=1 $CCACHE ./compiler.sh -c test1.c 2>stderr.txt
+    stderr=$(cat stderr.txt)
+    expect_stat 'cache hit (preprocessed)' 0
+    expect_stat 'cache miss' 1
+    if [ "$stderr" != "1Pu1Cu1Cc" ]; then
+        test_failed "Unexpected stderr: $stderr != 1Pu1Cu1Cc"
+    fi
+
+    N=2 $CCACHE ./compiler.sh -c test1.c 2>stderr.txt
+    stderr=$(cat stderr.txt)
+    expect_stat 'cache hit (preprocessed)' 1
+    expect_stat 'cache miss' 1
+    if [ "$stderr" != "2Pu1Cc" ]; then
+        test_failed "Unexpected stderr: $stderr != 2Pu1Cc"
+    fi
 }
 
 # =============================================================================