File: test017.py

package info (click to toggle)
aap 1.072-1.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 4,976 kB
  • ctags: 2,160
  • sloc: python: 15,113; makefile: 62; sh: 13
file content (72 lines) | stat: -rw-r--r-- 1,437 bytes parent folder | download | duplicates (2)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Part of the A-A-P recipe executive: Testing of :usetool gcc with :lib

# Copyright (C) 2002-2003 Stichting NLnet Labs
# Permission to copy and use this file is specified in the file COPYING.
# If this file is missing you can find it here: http://www.a-a-p.org/COPYING

#
# This test checks that the following works properly:
# - A recipe uses :usetool gcc to use the GCC toolchain.
# - The recipe then tries to build a library from a trivial C file.
#

import sys, os, re, glob, shutil

def runaap(args):
    return os.system("%s ..%sMain.py %s" % (sys.argv[1], os.sep, args))

os.chdir("rectest")

# Create a recipe, run it and check the output.
# Checks expanding $VAR.
rec = "rectest.aap"
out = "rectest.out"
inp = "rectest.c"
lib = "librectest.a"

def cleanup():
    for file in [ rec, out, inp, lib ]:
	try:
	    os.remove(file)
	except:
	    pass
    try:
	for dir in glob.glob('build-*'):
	    shutil.rmtree(dir)
    except:
	pass

cleanup()

# Create the recipe.
f = open(rec, "w")
f.write("""
:usetool gcc
:lib %s : %s
all: %s
    :print PASS
""" % (lib, inp, lib))
f.close()

# Create the source file.
f = open(inp, "w")
f.write("""
int foo() {return 0;}
""")
f.close()


res = runaap("-f %s >%s" % (rec, out))

f = open(out)
l = f.read()
if not re.search("PASS", l):
    print 'Aap failed to behave as expected - output was:'
    print l
    res = 1
f.close()

cleanup()
sys.exit(res)

# vim: set sw=4 et sts=4 tw=79 fo+=l: