/*
 *  memtest.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/>.
 *
 */

% Check for memory leak

/N 1000 def
/laps 1000 def

/BuildNetwork
{
  /iaf_neuron N Create pop
  1 1 N
  {
    /pre Set
    1 1 N
    {
      /post Set
      pre post Connect
    } for
  } for
} def

/TestMemory
{
  (Initializing ...\n) =
  BuildNetwork
  (Please look at the memory of the NEST process in top.) =
  (The values should stay between some upper and lower value,)=
  (but must not grow indefinitely.)=
  (Press ctrl-c to quit the test.) =

  1 1 laps
  { 
    (Lap number :) =only =
    {
      ResetKernel BuildNetwork
    } stopped
    {
       errordict begin /newerror false def end
       clear
       ResetKernel
       (Done .) =
       exit
    } if
 } for
} def

(type TestMemory to see if nest has a memory leak.) =
