#~ Copyright 2007 Rene Rivera.
#~ 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)

if ! $(BJAM_SUBTEST)
{
    ECHO --- Testing -l option... ;

    assert "...found 2 targets...
...updating 1 target...
.a. sleeper
2 second time limit exceeded
001

echo 001
sleep 4
echo 002

...failed .a. sleeper...
...failed updating 1 target...
" : (==) : [ SHELL "\"$(ARGV[1])\" -f option_l.jam -sBJAM_SUBTEST=1 -l2" ] ;
}
else
{
    actions .a. {
echo 001
sleep 4
echo 002
}

    .a. sleeper ;

    DEPENDS all : sleeper ;
}
