git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[Bug] Temp file use in t0018.6

From
rsbecker@nexbridge.com <rsbecker@nexbridge.com>
Date
Aug 1, 2024, 18:15 UTC
Message-ID
<02d401dae43e$c076b000$41641000$@nexbridge.com>

In the 2.46.0 test suite on NonStop I'm getting the following surprise error:

expecting success of 0018.6 'advice should be printed when GIT_ADVICE is set
to true':
        q_to_tab >expect <<-\EOF &&
        On branch trunk
        No commits yet
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
        QREADME
        nothing added to commit but untracked files present (use "git add"
to track)
        EOF
        test_when_finished "rm -fr advice-test" &&
        git init advice-test &&
        (
                cd advice-test &&
                >README &&
                GIT_ADVICE=true git status
        ) >actual &&
        cat actual > /tmp/actual &&
        test_cmp expect actual

Initialized empty Git repository in /home/randall/git-clar/t/trash directory.t0018-advice/advice-test/.git/ ./test-lib.sh: line 1071: /tmp/actual: Permission denied not ok 6 - advice should be printed when GIT_ADVICE is set to true

This is the first I'm seeing a failure I'm seeing of this kind. We should be using randomized temp locations, not fixed. What is going on is that our main CI system runs under one user id while I was running another test under my own user. Our /tmp is configured so that users who create files have exclusive access to those files, regardless of security so /tmp/actual in this case can only be used in one run by one user. What we should be doing is probably generating /tmp/actual.XXXXXXX (randomized) or using actual in the trash directory as normal. In any event, t0018 should be cleaning up and removing /tmp/actual when done. I would suggest doing something like this as a start:

diff --git a/t/t0018-advice.sh b/t/t0018-advice.sh
index 29306b367c..1676a1a31d 100755
--- a/t/t0018-advice.sh
+++ b/t/t0018-advice.sh
@@ -97,7 +97,8 @@ test_expect_success 'advice should be printed when
GIT_ADVICE is set to true' '
                GIT_ADVICE=true git status
        ) >actual &&
        cat actual > /tmp/actual &&
-       test_cmp expect actual
+       test_cmp expect actual &&
+       rm /tmp/actual
 '

And then, as a real fix:

diff --git a/t/t0018-advice.sh b/t/t0018-advice.sh
index 29306b367c..deba8a1d91 100755
--- a/t/t0018-advice.sh
+++ b/t/t0018-advice.sh
@@ -96,8 +96,10 @@ test_expect_success 'advice should be printed when
GIT_ADVICE is set to true' '
                >README &&
                GIT_ADVICE=true git status
        ) >actual &&
-       cat actual > /tmp/actual &&
-       test_cmp expect actual
+       ACTUAL=/tmp/actual.$RANDOM &&
+       cat actual > $ACTUAL &&
+       test_cmp expect $ACTUAL &&
+       rm $ACTUAL
 '

Regards,
Randall
Next: Junio C Hamano
Message 1 of 6 in “[Bug] Temp file use in t0018.6”
  1. rsbecker@nexbridge.comAug 1, 2024
  2. Junio C HamanoAug 1, 2024
  3. t0018: remove leftover debugging cruftJunio C Hamano, Aug 1, 2024
  4. rsbecker@nexbridge.comAug 1, 2024
  5. rsbecker@nexbridge.comAug 1, 2024
  6. Jeff KingAug 2, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.