summaryrefslogtreecommitdiffstats
path: root/test/Program.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-09-21 01:30:38 (GMT)
committerSteven Knight <knight@baldmt.com>2001-09-21 01:30:38 (GMT)
commitc8bbea81460524f6469fa4b6afc2be5a6f338edc (patch)
treeaa6a337d270384c8e12577542615ae3f3f51dc39 /test/Program.py
parentb6251d39d5f5b187a7455923caeede3b962a6d0e (diff)
downloadSCons-c8bbea81460524f6469fa4b6afc2be5a6f338edc.zip
SCons-c8bbea81460524f6469fa4b6afc2be5a6f338edc.tar.gz
SCons-c8bbea81460524f6469fa4b6afc2be5a6f338edc.tar.bz2
Add additional tests to provide more examples.
Diffstat (limited to 'test/Program.py')
-rw-r--r--test/Program.py106
1 files changed, 101 insertions, 5 deletions
diff --git a/test/Program.py b/test/Program.py
index a2b0e4b..d517808 100644
--- a/test/Program.py
+++ b/test/Program.py
@@ -4,25 +4,121 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import TestSCons
+#XXX Future: be able to interpolate
+
test = TestSCons.TestSCons()
test.write('SConstruct', """
env = Environment()
-env.Program(target = 'foo', source = 'foo.c')
+env.Program(target = 'foo1', source = 'f1.c')
+env.Program(target = 'foo2', source = 'f2a.c f2b.c f2c.c')
+#XXXenv.Program(target = 'foo3', source = ['f3a.c', 'f3b.c', 'f3c.c'])
""")
-test.write('foo.c', """
+test.write('f1.c', """
int
main(int argc, char *argv[])
{
argv[argc++] = "--";
- printf("foo.c\n");
+ printf("f1.c\n");
exit (0);
}
""")
-test.run(arguments = 'foo')
+test.write('f2a.c', """
+void
+f2a(void)
+{
+ printf("f2a.c\n");
+}
+""")
+
+test.write('f2b.c', """
+void
+f2b(void)
+{
+ printf("f2b.c\n");
+}
+""")
+
+test.write('f2c.c', """
+extern void f2a(void);
+extern void f2b(void);
+int
+main(int argc, char *argv[])
+{
+ argv[argc++] = "--";
+ f2a();
+ f2b();
+ printf("f2c.c\n");
+ exit (0);
+}
+""")
+
+test.write('f3a.c', """
+void
+f3a(void)
+{
+ printf("f3a.c\n");
+}
+""")
+
+test.write('f3b.c', """
+void
+f3b(void)
+{
+ printf("f3b.c\n");
+}
+""")
+
+test.write('f3c.c', """
+extern void f3a(void);
+extern void f3b(void);
+int
+main(int argc, char *argv[])
+{
+ argv[argc++] = "--";
+ f3a();
+ f3b();
+ printf("f3c.c\n");
+ exit (0);
+}
+""")
+
+#XXXtest.run(arguments = '.')
+test.run(arguments = 'foo1 foo2')
+
+test.run(program = test.workpath('foo1'), stdout = "f1.c\n")
+test.run(program = test.workpath('foo2'), stdout = "f2a.c\nf2b.c\nf2c.c\n")
+#XXXtest.run(program = test.workpath('foo3'), stdout = "f3a.c\nf3b.c\nf3c.c\n")
+
+#XXXtest.up_to_date(arguments = '.')
+
+test.write('f1.c', """
+int
+main(int argc, char *argv[])
+{
+ argv[argc++] = "--";
+ printf("f1.c X\n");
+ exit (0);
+}
+""")
+
+test.write('f3b.c', """
+void
+f3b(void)
+{
+ printf("f3b.c X\n");
+}
+""")
+
+#XXXtest.run(arguments = '.')
+test.run(arguments = 'foo1 foo2')
+
+test.run(program = test.workpath('foo1'), stdout = "f1.c X\n")
+test.run(program = test.workpath('foo2'), stdout = "f2a.c\nf2b.c\nf2c.c\n")
+#XXXtest.run(program = test.workpath('foo3'), stdout = "f3a.c\nf3b.c X\nf3c.c\n")
-test.run(program = test.workpath('foo'), stdout = "foo.c\n")
+#XXXtest.up_to_date(arguments = '.')
test.pass_test()