[PATCH] D48224: Don't let test/Driver/no-canonical-prefixes.c form a symlink cycle the second time it runs.

Nico Weber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 15 09:11:21 PDT 2018


thakis created this revision.
thakis added a reviewer: chandlerc.

The test makes %t.fake a symlink to %t.real by running `ln -sf %t.real %t.fake`. If %t.fake already is a symlink to %t.real when this runs (e.g. if the test has run before), then this effectively becomes `ln -sf %t.real %t.real`, symlinking the directory to itself. At least on my mac, this leads to the directory containing itself.

As fix, just remove %t.fake before creating the symlink. To clean up build dirs on bots, also remove %t.real for a while.


https://reviews.llvm.org/D48224

Files:
  test/Driver/no-canonical-prefixes.c


Index: test/Driver/no-canonical-prefixes.c
===================================================================
--- test/Driver/no-canonical-prefixes.c
+++ test/Driver/no-canonical-prefixes.c
@@ -1,9 +1,14 @@
 // Due to ln -sf:
 // REQUIRES: shell
+// RUN: rm -rf %t.real
 // RUN: mkdir -p %t.real
 // RUN: cd %t.real
 // RUN: ln -sf %clang test-clang
 // RUN: cd ..
+// Important to remove %t.fake: If it already is a symlink to %t.real when
+// `ln -sf %t.real %t.fake` runs, then that would symlink %t.real to itself,
+// forming a cycle.
+// RUN: rm -rf %t.fake
 // RUN: ln -sf %t.real %t.fake
 // RUN: cd %t.fake
 // RUN: ./test-clang -v -S %s 2>&1 | FileCheck --check-prefix=CANONICAL %s


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48224.151522.patch
Type: text/x-patch
Size: 693 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180615/79206b25/attachment.bin>


More information about the cfe-commits mailing list