File: SConstruct

package info (click to toggle)
cgreen 1.6.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,588 kB
  • sloc: ansic: 12,276; sh: 558; makefile: 474; cpp: 403; python: 181; xml: 33; sed: 13
file content (31 lines) | stat: -rw-r--r-- 1,263 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
env = Environment()

# Add the cgreen headers to the include path
env.Append(CPPPATH=['../../include', ])

# Build the cgreen library
cgreendir = '../../src/'
cgreenfiles = """unit.c messaging.c breadcrumb.c reporter.c 
                 assertions.c vector.c mocks.c constraint.c
                 parameters.c text_reporter.c""".split()
cgreensources = ['../../src/'+f for f in cgreenfiles]
cgreenlib = env.StaticLibrary('cgreen', cgreensources)

#Build our code to be tested
env.Append(CPPPATH=['include'])
mainlib = env.StaticLibrary('main', env.Glob('src/*.c'))

for test in env.Glob('tests/*.c'):
  testprog = env.Program(test, LIBS=[cgreenlib, mainlib])

  # This is a nasty little hack here.
  # We run the test twice, the first time is so we can see the output on the
  # console, and get the results logged. Unfortunately it will not cause the
  # build to stop on test failures since the result of the command is the
  # return value of tee, not the tests. So we run it again to catch the 
  # possibly failed return value ... those tests better be repeatable!
  env.Command(testprog[0].path+'.results', testprog,
              '$SOURCE 2>&1 | tee $TARGET')
  env.Command(testprog[0].path+'.results_', testprog,
              '$SOURCE > $TARGET 2>&1 ')