]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Remove stderr file from the preprocessor when we get a preprocessed cache hit
authorJoel Rosdahl <joel@rosdahl.net>
Sat, 30 Jan 2010 14:38:25 +0000 (15:38 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Fri, 12 Feb 2010 20:52:28 +0000 (21:52 +0100)
ccache.c
test.sh

index 80bfee5dd3aff4b278281044f8022c24e3fd6bc2..84f1fb2e5a505d9138cbbb6896b1db761343035c 100644 (file)
--- a/ccache.c
+++ b/ccache.c
@@ -492,6 +492,7 @@ static void to_cache(ARGS *args)
                close(fd_result);
                unlink(cpp_stderr);
                free(cpp_stderr);
+               cpp_stderr = NULL;
        }
 
        if (status != 0) {
@@ -987,6 +988,13 @@ static void from_cache(enum fromcache_call_mode mode, int put_object_in_manifest
                i_tmpfile = NULL;
        }
 
+       /* Delete the cpp stderr file if necessary. */
+       if (cpp_stderr) {
+               unlink(cpp_stderr);
+               free(cpp_stderr);
+               cpp_stderr = NULL;
+       }
+
        /* Send the stderr, if any. */
        fd_stderr = open(stderr_file, O_RDONLY | O_BINARY);
        if (fd_stderr != -1) {
diff --git a/test.sh b/test.sh
index c5436c74a393545f8140ab8a209eb624376c6ddc..f583bddaa2d147e907f3b4b73e47afd717a6710a 100755 (executable)
--- a/test.sh
+++ b/test.sh
@@ -65,7 +65,13 @@ checkfile() {
 run_suite() {
     echo "starting testsuite $1"
     testsuite=$1
+
     ${1}_suite
+
+    testname="the tmp directory should be empty"
+    if [ "`find $CCACHE_DIR/tmp -type f | wc -l`" -gt 0 ]; then
+        test_failed "$CCACHE_DIR/tmp is not empty"
+    fi
 }
 
 base_tests() {