#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2017 Laboratoire de Recherche et Développement de
# l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
#
# Spot 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 3 of the License, or
# (at your option) any later version.
#
# Spot 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 this program.  If not, see <http://www.gnu.org/licenses/>.

# Test the timeout handling of autcross.
. ./defs
set -e

check_csv()
{
  # Make sure all lines in $1 have the same number of comas
  sed 's/[^,]//g' < "$1" |
  ( read first
  while read l; do
    test "x$first" = "x$l" || exit 1
  done)
}

randaut -Q4 2 |
autcross --language-preserve 'autfilt' 'sleep 5; autfilt %H > %O' \
  --timeout=2 --csv=out.csv 2>stderr
cat stderr
test `grep 'warning:.*timeout' stderr | wc -l` -eq 1
test `wc -l < out.csv` -eq 3
check_csv out.csv

randaut -Q4 2 |
autcross --language-preserve 'autfilt' 'sleep 5; autfilt %H > %O' \
  --timeout=2 --fail-on-timeout --csv=out.csv 2>stderr && exit 1
cat stderr
test `grep 'error:.*timeout' stderr | wc -l` -eq 1
test `wc -l < out.csv` -eq 3
check_csv out.csv
