# 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" ;


