introduce CMDTEST_GCC_TO_TEST
This commit is contained in:
parent
b0ff71a8da
commit
e88cb07656
@ -25,10 +25,14 @@
|
|||||||
|
|
||||||
class CMDTEST_gcc < Cmdtest::Testcase
|
class CMDTEST_gcc < Cmdtest::Testcase
|
||||||
|
|
||||||
|
def gcc
|
||||||
|
ENV["CMDTEST_GCC_TO_TEST"] || "gcc"
|
||||||
|
end
|
||||||
|
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
|
|
||||||
def test_no_arguments
|
def test_no_arguments
|
||||||
cmd "gcc" do
|
cmd "#{gcc}" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: no input files/,
|
/^.*gcc.*: no input files/,
|
||||||
]
|
]
|
||||||
@ -39,7 +43,7 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
|
|
||||||
def test_nonexisting_input
|
def test_nonexisting_input
|
||||||
cmd "gcc -c non-existing.c" do
|
cmd "#{gcc} -c non-existing.c" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: non-existing.c: No such file/,
|
/^.*gcc.*: non-existing.c: No such file/,
|
||||||
/^.*gcc.*: no input files/,
|
/^.*gcc.*: no input files/,
|
||||||
@ -47,7 +51,7 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
exit_nonzero
|
exit_nonzero
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc non-existing.c" do
|
cmd "#{gcc} non-existing.c" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: non-existing.c: No such file/,
|
/^.*gcc.*: non-existing.c: No such file/,
|
||||||
/^.*gcc.*: no input files/,
|
/^.*gcc.*: no input files/,
|
||||||
@ -55,7 +59,7 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
exit_nonzero
|
exit_nonzero
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc non-existing.o" do
|
cmd "#{gcc} non-existing.o" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: non-existing.o: No such file/,
|
/^.*gcc.*: non-existing.o: No such file/,
|
||||||
/^.*gcc.*: no input files/,
|
/^.*gcc.*: no input files/,
|
||||||
@ -70,32 +74,32 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
|
|
||||||
create_file "alpha.c", "int add_alpha(int x, int y) { return x+y; }"
|
create_file "alpha.c", "int add_alpha(int x, int y) { return x+y; }"
|
||||||
|
|
||||||
cmd "gcc -c alpha.c" do
|
cmd "#{gcc} -c alpha.c" do
|
||||||
created_files "alpha.o"
|
created_files "alpha.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_file "beta.c", "int add_beta(int x, int y) { return x+y; }"
|
create_file "beta.c", "int add_beta(int x, int y) { return x+y; }"
|
||||||
create_file "gamma.c", "int add_gamma(int x, int y) { return x+y; }"
|
create_file "gamma.c", "int add_gamma(int x, int y) { return x+y; }"
|
||||||
|
|
||||||
cmd "gcc -c beta.c gamma.c" do
|
cmd "#{gcc} -c beta.c gamma.c" do
|
||||||
created_files "beta.o", "gamma.o"
|
created_files "beta.o", "gamma.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.c -c" do
|
cmd "#{gcc} alpha.c -c" do
|
||||||
written_files "alpha.o"
|
written_files "alpha.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc beta.c -c gamma.c" do
|
cmd "#{gcc} beta.c -c gamma.c" do
|
||||||
written_files "beta.o", "gamma.o"
|
written_files "beta.o", "gamma.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -c alpha.o" do
|
cmd "#{gcc} -c alpha.o" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: alpha.o: linker input file unused because linking not done/,
|
/^.*gcc.*: alpha.o: linker input file unused because linking not done/,
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -c alpha.o beta.o" do
|
cmd "#{gcc} -c alpha.o beta.o" do
|
||||||
stderr_equal [
|
stderr_equal [
|
||||||
/^.*gcc.*: alpha.o: linker input file unused because linking not done/,
|
/^.*gcc.*: alpha.o: linker input file unused because linking not done/,
|
||||||
/^.*gcc.*: beta.o: linker input file unused because linking not done/,
|
/^.*gcc.*: beta.o: linker input file unused because linking not done/,
|
||||||
@ -109,15 +113,15 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
|
|
||||||
create_file "alpha.c", "int add_alpha(int x, int y) { return x+y; }"
|
create_file "alpha.c", "int add_alpha(int x, int y) { return x+y; }"
|
||||||
|
|
||||||
cmd "gcc -c alpha.c -o alpha.o" do
|
cmd "#{gcc} -c alpha.c -o alpha.o" do
|
||||||
created_files "alpha.o"
|
created_files "alpha.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -c alpha.c -o beta.o" do
|
cmd "#{gcc} -c alpha.c -o beta.o" do
|
||||||
created_files "beta.o"
|
created_files "beta.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -o gamma.o -c alpha.c" do
|
cmd "#{gcc} -o gamma.o -c alpha.c" do
|
||||||
created_files "gamma.o"
|
created_files "gamma.o"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -128,19 +132,19 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
|
|
||||||
create_file "alpha.c", "int main() { return 17; }"
|
create_file "alpha.c", "int main() { return 17; }"
|
||||||
|
|
||||||
cmd "gcc -c alpha.c" do
|
cmd "#{gcc} -c alpha.c" do
|
||||||
created_files "alpha.o"
|
created_files "alpha.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.o" do
|
cmd "#{gcc} alpha.o" do
|
||||||
created_files "a.out"
|
created_files "a.out"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.o -o beta" do
|
cmd "#{gcc} alpha.o -o beta" do
|
||||||
created_files "beta"
|
created_files "beta"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -o gamma alpha.o" do
|
cmd "#{gcc} -o gamma alpha.o" do
|
||||||
created_files "gamma"
|
created_files "gamma"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -153,19 +157,19 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
create_file "alpha.c", "extern int beta ; int main() { return beta; }"
|
create_file "alpha.c", "extern int beta ; int main() { return beta; }"
|
||||||
create_file "beta.c", "int beta = 17;"
|
create_file "beta.c", "int beta = 17;"
|
||||||
|
|
||||||
cmd "gcc -c alpha.c beta.c" do
|
cmd "#{gcc} -c alpha.c beta.c" do
|
||||||
created_files "alpha.o", "beta.o"
|
created_files "alpha.o", "beta.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.o beta.o" do
|
cmd "#{gcc} alpha.o beta.o" do
|
||||||
created_files "a.out"
|
created_files "a.out"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.o beta.o -o beta" do
|
cmd "#{gcc} alpha.o beta.o -o beta" do
|
||||||
created_files "beta"
|
created_files "beta"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -o gamma alpha.o beta.o" do
|
cmd "#{gcc} -o gamma alpha.o beta.o" do
|
||||||
created_files "gamma"
|
created_files "gamma"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -178,23 +182,23 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
create_file "alpha.c", "extern int beta ; int main() { return beta; }"
|
create_file "alpha.c", "extern int beta ; int main() { return beta; }"
|
||||||
create_file "beta.c", "int beta = 17;"
|
create_file "beta.c", "int beta = 17;"
|
||||||
|
|
||||||
cmd "gcc alpha.c beta.c" do
|
cmd "#{gcc} alpha.c beta.c" do
|
||||||
created_files "a.out"
|
created_files "a.out"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc alpha.c beta.c -o gamma" do
|
cmd "#{gcc} alpha.c beta.c -o gamma" do
|
||||||
created_files "gamma"
|
created_files "gamma"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -o delta alpha.c beta.c" do
|
cmd "#{gcc} -o delta alpha.c beta.c" do
|
||||||
created_files "delta"
|
created_files "delta"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -c alpha.c" do
|
cmd "#{gcc} -c alpha.c" do
|
||||||
created_files "alpha.o"
|
created_files "alpha.o"
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -o epsilon alpha.o beta.c" do
|
cmd "#{gcc} -o epsilon alpha.o beta.c" do
|
||||||
created_files "epsilon"
|
created_files "epsilon"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -209,12 +213,12 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
"int variable = VALUE;",
|
"int variable = VALUE;",
|
||||||
]
|
]
|
||||||
|
|
||||||
cmd "gcc -E alpha.c" do
|
cmd "#{gcc} -E alpha.c" do
|
||||||
stdout_equal /"alpha.c"/
|
stdout_equal /"alpha.c"/
|
||||||
stdout_equal /^int variable = 17;/
|
stdout_equal /^int variable = 17;/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -E alpha.c -o alpha.preprocessed" do
|
cmd "#{gcc} -E alpha.c -o alpha.preprocessed" do
|
||||||
created_files "alpha.preprocessed"
|
created_files "alpha.preprocessed"
|
||||||
file_equal "alpha.preprocessed", /"alpha.c"/
|
file_equal "alpha.preprocessed", /"alpha.c"/
|
||||||
file_equal "alpha.preprocessed", /^int variable = 17;/
|
file_equal "alpha.preprocessed", /^int variable = 17;/
|
||||||
@ -235,15 +239,15 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
"AAA --- BBB",
|
"AAA --- BBB",
|
||||||
]
|
]
|
||||||
|
|
||||||
cmd "gcc -E alpha.c" do
|
cmd "#{gcc} -E alpha.c" do
|
||||||
stdout_equal /^aaa_in_file --- bbb_in_file/
|
stdout_equal /^aaa_in_file --- bbb_in_file/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -DAAA=aaa_option -E alpha.c" do
|
cmd "#{gcc} -DAAA=aaa_option -E alpha.c" do
|
||||||
stdout_equal /^aaa_option --- bbb_in_file/
|
stdout_equal /^aaa_option --- bbb_in_file/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -DAAA=aaa_option -DBBB=bbb_option -E alpha.c" do
|
cmd "#{gcc} -DAAA=aaa_option -DBBB=bbb_option -E alpha.c" do
|
||||||
stdout_equal /^aaa_option --- bbb_option/
|
stdout_equal /^aaa_option --- bbb_option/
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -260,19 +264,19 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
create_file "dir1/alpha.h", "this_is_dir1"
|
create_file "dir1/alpha.h", "this_is_dir1"
|
||||||
create_file "dir2/alpha.h", "this_is_dir2"
|
create_file "dir2/alpha.h", "this_is_dir2"
|
||||||
|
|
||||||
cmd "gcc -Idir1 -E alpha.c" do
|
cmd "#{gcc} -Idir1 -E alpha.c" do
|
||||||
stdout_equal /this_is_dir1/
|
stdout_equal /this_is_dir1/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -Idir2 -E alpha.c" do
|
cmd "#{gcc} -Idir2 -E alpha.c" do
|
||||||
stdout_equal /this_is_dir2/
|
stdout_equal /this_is_dir2/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -Idir1 -Idir2 -E alpha.c" do
|
cmd "#{gcc} -Idir1 -Idir2 -E alpha.c" do
|
||||||
stdout_equal /this_is_dir1/
|
stdout_equal /this_is_dir1/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -Idir2 -Idir1 -E alpha.c" do
|
cmd "#{gcc} -Idir2 -Idir1 -E alpha.c" do
|
||||||
stdout_equal /this_is_dir2/
|
stdout_equal /this_is_dir2/
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -288,13 +292,13 @@ class CMDTEST_gcc < Cmdtest::Testcase
|
|||||||
create_file "dir2/beta2.h", "dir2_beta2_h"
|
create_file "dir2/beta2.h", "dir2_beta2_h"
|
||||||
create_file "dir2/beta12.h", "dir2_beta12_h"
|
create_file "dir2/beta12.h", "dir2_beta12_h"
|
||||||
|
|
||||||
cmd "gcc -Idir1 -Idir2 -E beta.c" do
|
cmd "#{gcc} -Idir1 -Idir2 -E beta.c" do
|
||||||
stdout_equal /dir1_beta1_h/
|
stdout_equal /dir1_beta1_h/
|
||||||
stdout_equal /dir1_beta12_h/
|
stdout_equal /dir1_beta12_h/
|
||||||
stdout_equal /dir2_beta2_h/
|
stdout_equal /dir2_beta2_h/
|
||||||
end
|
end
|
||||||
|
|
||||||
cmd "gcc -Idir2 -Idir1 -E beta.c" do
|
cmd "#{gcc} -Idir2 -Idir1 -E beta.c" do
|
||||||
stdout_equal /dir1_beta1_h/
|
stdout_equal /dir1_beta1_h/
|
||||||
stdout_equal /dir2_beta12_h/
|
stdout_equal /dir2_beta12_h/
|
||||||
stdout_equal /dir2_beta2_h/
|
stdout_equal /dir2_beta2_h/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user