[clang-tools-extra] r196439 - If the LLVM OBJ_DIR path contains any characters not listed in the

Lang Hames lhames at gmail.com
Wed Dec 4 16:33:58 PST 2013


Author: lhames
Date: Wed Dec  4 18:33:58 2013
New Revision: 196439

URL: http://llvm.org/viewvc/llvm-project?rev=196439&view=rev
Log:
If the LLVM OBJ_DIR path contains any characters not listed in the
ScalarSafeChars array in Output::scalarString (See YAMLTraits.cpp line 554 as
of r196428), this test will fail: The path will be single quoted to preserve
the 'unsafe' characters, which doesn't match the expected (unquoted) output.
Notionally "unsafe" characters include fairly innocuous ones like the '+'
symbol (I don't know enough YAML to be sure, but I suspect '+' doesn't really
need to be quoted).

I have added some sed lines to strip leading spaces, and leading and trailing
single quote (') characters from the path. That should make this test slightly
more robust.

If possible, this test should be rewritten to use FileCheck, rather than
diffing against expected output - the latter is likely to brittle, and require
further sed goop in the future.


Modified:
    clang-tools-extra/trunk/test/clang-modernize/HeaderReplacements/main.cpp

Modified: clang-tools-extra/trunk/test/clang-modernize/HeaderReplacements/main.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-modernize/HeaderReplacements/main.cpp?rev=196439&r1=196438&r2=196439&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-modernize/HeaderReplacements/main.cpp (original)
+++ clang-tools-extra/trunk/test/clang-modernize/HeaderReplacements/main.cpp Wed Dec  4 18:33:58 2013
@@ -12,11 +12,13 @@
 // RUN: ls -1 %T/SerializeTest | FileCheck %s --check-prefix=MAIN_CPP
 // RUN: ls -1 %T/SerializeTest | FileCheck %s --check-prefix=COMMON_CPP
 // We need to put the build path to the expected YAML file to diff against the generated one.
-// RUN: sed -e 's#$(path)#%/T/SerializeTest#g' -e "s#\([A-Z]:/.*\.[chp]*\)#'\1'#g" %S/main_expected.yaml > %T/SerializeTest/main_expected.yaml
+// RUN: sed -e 's#$(path)#%/T/SerializeTest#g' -e "s#^\(.*:\)[[:space:]]*\(.*\)#\1 \2#g" %S/main_expected.yaml > %T/SerializeTest/main_expected.yaml
 // RUN: sed -i -e 's#\\#/#g' %T/SerializeTest/main.cpp_*.yaml
+// RUN: sed -i -e "s#^\(.*:\)[[:space:]]*'*\(/[^']*\)'*\$#\1 \2#g" %T/SerializeTest/main.cpp_*.yaml
 // RUN: diff -b %T/SerializeTest/main_expected.yaml %T/SerializeTest/main.cpp_*.yaml
-// RUN: sed -e 's#$(path)#%/T/SerializeTest#g' -e "s#\([A-Z]:/.*\.[chp]*\)#'\1'#g" %S/common_expected.yaml > %T/SerializeTest/common_expected.yaml
+// RUN: sed -e 's#$(path)#%/T/SerializeTest#g' -e "s#^\(.*:\)[[:space:]]*\(.*\)#\1 \2#g" %S/common_expected.yaml > %T/SerializeTest/common_expected.yaml
 // RUN: sed -i -e 's#\\#/#g' %T/SerializeTest/common.cpp_*.yaml
+// RUN: sed -i -e "s#^\(.*:\)[[:space:]]*'*\(/[^']*\)'*\$#\1 \2#g" %T/SerializeTest/common.cpp_*.yaml
 // RUN: diff -b %T/SerializeTest/common_expected.yaml %T/SerializeTest/common.cpp_*.yaml
 //
 // The following are for FileCheck when used on output of 'ls'. See above.





More information about the cfe-commits mailing list