summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/check-arguments.jam
blob: 20e025074d231e6c97594d7a6aa655028b0ff6ef (plain)
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
# Copyright 2001 Dave Abrahams 
# Distributed under the Boost Software License, Version 1.0. 
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 

#
# Jam code for testing the named-argument patch.
#

include recursive.jam ;

# Prefixes for all of the jam code we're going to test
local ECHO_ARGS = "include echo_args.jam ; echo_args "
   ;

local ECHO_VARARGS = "include echo_args.jam ; echo_varargs "
   ;

# Check that it will find missing arguments
Jam-fail $(ECHO_ARGS)";"
    : "missing argument a"
    ;

# Check that it will find if too many arguments are passed
Jam-fail $(ECHO_ARGS)"1 2 : 3 : 4 : 5 ;"
    : "extra argument 5"
    ;

# Check that it will find when an argument has too many elements
Jam-fail $(ECHO_ARGS)"a b c1 c2 : d ;"
    : "extra argument c2"
    ;

# Check modifier '?'
Jam $(ECHO_ARGS)"1 2 3 : 4 ;"
    : "a= 1 b= 2 c= 3 : d= 4 : e=" ;
Jam $(ECHO_ARGS)"1 2 : 3 ;"
    : "a= 1 b= 2 c= : d= 3 : e=" ;
Jam $(ECHO_ARGS)"1 : 2 ;"
    : "a= 1 b= c= : d= 2 : e=" ;

# Check modifier '+'
Jam-fail $(ECHO_ARGS)"1 ;"
    : "missing argument d" ;
Jam $(ECHO_ARGS)"1 : 2 3 ;"
    : "a= 1 b= c= : d= 2 3 : e=" ;
Jam $(ECHO_ARGS)"1 : 2 3 4 ;"
    : "a= 1 b= c= : d= 2 3 4 : e=" ;

# Check modifier '*'
Jam $(ECHO_ARGS)"1 : 2 : 3 ;"
    : "a= 1 b= c= : d= 2 : e= 3" ;
Jam $(ECHO_ARGS)"1 : 2 : 3 4 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4" ;
Jam $(ECHO_ARGS)"1 : 2 : 3 4 5 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5" ;

#
# Check varargs
#
Jam $(ECHO_VARARGS)"1 : 2 : 3 4 5 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5" ;
Jam $(ECHO_VARARGS)"1 : 2 : 3 4 5 : 6 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5 : rest= 6" ;
Jam $(ECHO_VARARGS)"1 : 2 : 3 4 5 : 6 7 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5 : rest= 6 7" ;
Jam $(ECHO_VARARGS)"1 : 2 : 3 4 5 : 6 7 : 8 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5 : rest= 6 7 : 8" ;
Jam $(ECHO_VARARGS)"1 : 2 : 3 4 5 : 6 7 : 8 : 9 ;"
    : "a= 1 b= c= : d= 2 : e= 3 4 5 : rest= 6 7 : 8 : 9" ;