Hi, I am trying to understand behavior of Swift test case Sanitizers/tsan.swift. When I run Swift test suite, this test case generates corresponding test script as follows:
set -o pipefail;{ /root/swift-source/buildbot_incremental/swift-linux-powerpc64le/bin/swiftc -target powerpc64le-unknown-linux-gnu -module-cache-path '/tmp/swift-testsuite-clang-module-cacheGEeVqc' /root/swift-source/swift/test/Sanitizers/tsan.swift -target powerpc64le-unknown-linux-gnu -g -sanitize=thread -o /root/swift-source/buildbot_incremental/swift-linux-powerpc64le/test-linux-powerpc64le/Sanitizers/Output/tsan.swift.tmp_tsan-binary; } && { not env TSAN_OPTIONS="abort_on_error=0" /root/swift-source/buildbot_incremental/swift-linux-powerpc64le/test-linux-powerpc64le/Sanitizers/Output/tsan.swift.tmp_tsan-binary 2>&1 | /root/swift-source/swift/utils/PathSanitizingFileCheck --sanitize 'BUILD_DIR=/root/swift-source/buildbot_incremental/swift-linux-powerpc64le' --sanitize 'SOURCE_DIR=/root/swift-source/swift' --use-filecheck '/root/swift-source/buildbot_incremental/llvm-linux-powerpc64le/./bin/FileCheck' /root/swift-source/swift/test/Sanitizers/tsan.swift; } The first line in this script is failing (actually crashing) on my machine and I am trying to analyze it. What I have seen is this first line generates following command: /root/swift-source/buildbot_incremental/swift-linux-powerpc64le/bin/swift -frontend -c -primary-file /root/swift-source/swift/test/Sanitizers/tsan.swift -target powerpc64le-unknown-linux-gnu -disable-objc-interop -g -module-cache-path /tmp/swift-testsuite-clang-module-cacheGEeVqc -sanitize=thread -emit-module-doc-path /tmp/tsan-d095e5.swiftdoc -color-diagnostics -module-name main -emit-module-path /tmp/tsan-d095e5.swiftmodule -o /tmp/tsan-d095e5.o This crashes bitterly. Having extremely new with Swift, I was trying to toy with this command and found that if I omit "-frontend -c -primary-file" arguments and keep everything else same, it just works. So effectively I am using this "modified" command: /root/swift-source/buildbot_incremental/swift-linux-powerpc64le/bin/swift /root/swift-source/swift/test/Sanitizers/tsan.swift -target powerpc64le-unknown-linux-gnu -disable-objc-interop -g -module-cache-path /tmp/swift-testsuite-clang-module-cacheGEeVqc -sanitize=thread -emit-module-doc-path /tmp/tsan-d095e5.swiftdoc -color-diagnostics -module-name main -emit-module-path /tmp/tsan-d095e5.swiftmodule -o /tmp/tsan-d095e5.o As per my understanding so far, -frontend -c is invoking "C" frontend, I don't know much about the "-primary_file". By removing "-frontend -c" I am probably suppressing invocation of "C" frontend. But they what is used to complete the execution? I would like to know if tweaking makes any sense first of all, and if so, how can I go about debugging this issue? Thanks, Atul.
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users