/*
 *  test_fast_operators.sli
 *
 *  This file is part of NEST.
 *
 *  Copyright (C) 2004 The NEST Initiative
 *
 *  NEST is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  NEST is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with NEST.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

 /* BeginDocumentation
 Name: testsuite::test_fast_operators - ensures that internal operators do not check number of arguments

Synopsis: (test_fast_operators) run

Description: 
User level operators like add and pop in SLI are safe in the sense that a StackUnderflow error is 
raised if the stack does not contain a sufficient number of arguments. The user can then inspect the
state of the interpreter and solve the problem. In machine generated SLI code, however, checking the
number of arguments is unnecessary.

FirstVersion: 090227
Author: Diesmann
*/

(unittest) run
/unittest using

% preparatory work for proper test code in case NEST is complied with MPI support
% For now we just ignore this test, this will later be replaced 
% by a restart of NEST with a serial binary.
statusdict/is_mpi :: {statusdict/exitcodes/success :: quit_i} if


{add} failbutnocrash_or_die     % good if nest survives

% the following test is currently broken, since NEST crashes with a segfault which is not caught
% by crash_or_die
%  {add_dd} crash_or_die  % good if nest crashes


