blob: 9e41186f316f77721b6662dc7c99b9d576dff791 [file] [log] [blame]
# Check that we behave properly when a command changes.
#
# This is a regression test for a subtle bug when our hash function was too
# trivial, and ended up reversing itself due to trivial XOR combining.
#
# We use 'grep' to slice out two different subfiles from the same file.
#
# RUN: rm -rf %t.build
# RUN: mkdir -p %t.build
# RUN: touch %t.build/s1.swift %t.build/s2.swift
#
# RUN: grep -A1000 "VERSION-BEGIN-[1]" %s | grep -B10000 "VERSION-END-1" | grep -ve '^--$' > %t.build/build.swift-build.tmp
# RUN: sed -e "s#SOURCEDIR#%S#g" -e "s#TMPDIR#%t#g" < %t.build/build.swift-build.tmp > %t.build/build.swift-build
# RUN: %{swift-build-tool} -v --chdir %t.build > %t1.out
# RUN: %{FileCheck} --check-prefix CHECK-VERSION-1 --input-file %t1.out %s
#
# RUN: grep -A1000 "VERSION-BEGIN-[2]" %s | grep -B10000 "VERSION-END-2" | grep -ve '^--$' > %t.build/build.swift-build.tmp
# RUN: sed -e "s#SOURCEDIR#%S#g" -e "s#TMPDIR#%t#g" < %t.build/build.swift-build.tmp > %t.build/build.swift-build
# RUN: %{swift-build-tool} -v --chdir %t.build > %t2.out
# RUN: %{FileCheck} --check-prefix CHECK-VERSION-2 --input-file %t2.out %s
##### VERSION-BEGIN-1 #####
# CHECK-VERSION-1: swiftc {{.*}} s1.swift s2.swift
client:
name: swift-build
targets:
"": ["s1.o"]
commands:
C1:
tool: swift-compiler
inputs: ["s1.swift", "s2.swift"]
outputs: ["s1.o", "s2.o"]
executable: SOURCEDIR/Inputs/pseudo-swiftc
module-name: Foo
module-output-path: Foo.swiftmodule
sources: ["s1.swift", "s2.swift"]
objects: ["s1.o", "s2.o"]
temps-path: temps
is-library: true
##### VERSION-END-1 #####
##### VERSION-BEGIN-2 #####
# CHECK-VERSION-2: swiftc {{.*}} s1.swift
client:
name: swift-build
targets:
"": ["s1.o"]
commands:
C1:
tool: swift-compiler
inputs: ["s1.swift"]
outputs: ["s1.o"]
executable: SOURCEDIR/Inputs/pseudo-swiftc
module-name: Foo
module-output-path: Foo.swiftmodule
sources: ["s1.swift"]
objects: ["s1.o"]
temps-path: temps
is-library: true
##### VERSION-END-2 #####