From 1e243dba907f05f46bc2e528aad7408d8009eff7 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <lfleischer@calcurse.org>
Date: Tue, 13 Oct 2020 20:43:37 -0400
Subject: Fix parallelized test runs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Do not share a common temporary directory between different test cases.

Reported-by: Tomasz Kłoczko <kloczko.tomasz@gmail.com>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
---
 test/ical-001.sh | 12 ++++++------
 test/ical-002.sh | 10 +++++-----
 test/ical-003.sh | 14 +++++++-------
 test/ical-004.sh | 12 ++++++------
 test/ical-005.sh | 12 ++++++------
 test/ical-006.sh | 10 +++++-----
 test/ical-007.sh | 12 ++++++------
 test/ical-008.sh | 12 ++++++------
 test/ical-009.sh | 10 +++++-----
 test/ical-010.sh | 12 ++++++------
 test/ical-011.sh | 21 ++++++++++-----------
 test/ical-012.sh | 10 +++++-----
 test/ical-013.sh | 10 +++++-----
 test/ical-014.sh | 10 +++++-----
 14 files changed, 83 insertions(+), 84 deletions(-)

diff --git a/test/ical-001.sh b/test/ical-001.sh
index 4ff1bfe..c8005a7 100755
--- a/test/ical-001.sh
+++ b/test/ical-001.sh
@@ -3,12 +3,12 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-001.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/1980 -r2
-  "$CALCURSE" -D "$PWD/.calcurse" -t
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-001.ical"
+  "$CALCURSE" -D "$tmpdir" -s01/01/1980 -r2
+  "$CALCURSE" -D "$tmpdir" -t
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0012 lines read
diff --git a/test/ical-002.sh b/test/ical-002.sh
index 0b74b19..eeecab4 100755
--- a/test/ical-002.sh
+++ b/test/ical-002.sh
@@ -3,11 +3,11 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-002.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/2000 -r2
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-002.ical"
+  "$CALCURSE" -D "$tmpdir" -s01/01/2000 -r2
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0028 lines read
diff --git a/test/ical-003.sh b/test/ical-003.sh
index cff65c0..ace0165 100755
--- a/test/ical-003.sh
+++ b/test/ical-003.sh
@@ -4,13 +4,13 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-003.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/2000 -r365
-  "$CALCURSE" -D "$PWD/.calcurse" -s05/01/2020 --to 01/01/2023
-  cat "$PWD/.calcurse/notes"/*
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-003.ical"
+  "$CALCURSE" -D "$tmpdir" -s01/01/2000 -r365
+  "$CALCURSE" -D "$tmpdir" -s05/01/2020 --to 01/01/2023
+  cat "$tmpdir/notes"/*
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0070 lines read
diff --git a/test/ical-004.sh b/test/ical-004.sh
index 7be6d1c..1d19d73 100755
--- a/test/ical-004.sh
+++ b/test/ical-004.sh
@@ -3,12 +3,12 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-004.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/1980 -r2
-  "$CALCURSE" -D "$PWD/.calcurse" -t
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-004.ical"
+  "$CALCURSE" -D "$tmpdir" -s01/01/1980 -r2
+  "$CALCURSE" -D "$tmpdir" -t
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0012 lines read
diff --git a/test/ical-005.sh b/test/ical-005.sh
index 5d38301..47891ee 100755
--- a/test/ical-005.sh
+++ b/test/ical-005.sh
@@ -3,12 +3,12 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-005.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s10/03/2013 -r3
-  cat "$PWD/.calcurse/notes"/*
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-005.ical"
+  "$CALCURSE" -D "$tmpdir" -s10/03/2013 -r3
+  cat "$tmpdir/notes"/*
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0023 lines read
diff --git a/test/ical-006.sh b/test/ical-006.sh
index 6899d42..b923712 100755
--- a/test/ical-006.sh
+++ b/test/ical-006.sh
@@ -3,11 +3,11 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-006.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s06/01/2012 -r2
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-006.ical"
+  "$CALCURSE" -D "$tmpdir" -s06/01/2012 -r2
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0063 lines read
diff --git a/test/ical-007.sh b/test/ical-007.sh
index 59b7bf8..82405c9 100755
--- a/test/ical-007.sh
+++ b/test/ical-007.sh
@@ -3,13 +3,13 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  TZ="America/New_York" "$CALCURSE" -D "$PWD/.calcurse" \
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  TZ="America/New_York" "$CALCURSE" -D "$tmpdir" \
     -i "$DATA_DIR/ical-007.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s02/23/2015
-  cat "$PWD/.calcurse/notes/"*
-  rm -rf .calcurse || exit 1
+  "$CALCURSE" -D "$tmpdir" -s02/23/2015
+  cat "$tmpdir/notes/"*
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0018 lines read
diff --git a/test/ical-008.sh b/test/ical-008.sh
index b659eb0..344fa8a 100755
--- a/test/ical-008.sh
+++ b/test/ical-008.sh
@@ -3,12 +3,12 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-008.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/1980 -r2
-  "$CALCURSE" -D "$PWD/.calcurse" -t
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-008.ical"
+  "$CALCURSE" -D "$tmpdir" -s01/01/1980 -r2
+  "$CALCURSE" -D "$tmpdir" -t
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0012 lines read
diff --git a/test/ical-009.sh b/test/ical-009.sh
index 9015323..1abb96b 100755
--- a/test/ical-009.sh
+++ b/test/ical-009.sh
@@ -4,17 +4,17 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  out=$("$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-009.ical" 2>&1)
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  out=$("$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-009.ical" 2>&1)
   # Print the import report (stdout).
   echo "$out" | awk '$1 == "Import"; $2 == "apps"'
   # Find the log file and print the log messages (stderr).
   logfile=$(echo "$out" | awk '$1 == "See" { print $2 }')
   sed '1,18d' "$logfile"
   # One empty note file.
-  cat "$PWD/.calcurse/notes"/* | wc | awk '{ print $1 $2 $3 }'
-  rm -rf .calcurse || exit 1
+  cat "$tmpdir/notes"/* | wc | awk '{ print $1 $2 $3 }'
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0121 lines read
diff --git a/test/ical-010.sh b/test/ical-010.sh
index 7cb1002..e66538c 100755
--- a/test/ical-010.sh
+++ b/test/ical-010.sh
@@ -4,12 +4,12 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  cp "$DATA_DIR/apts-export" .calcurse/apts || exit 1
-  cp "$DATA_DIR/todo-export" .calcurse/todo || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" --export=ical | sed '/^PRODID/d'
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  cp "$DATA_DIR/apts-export" "$tmpdir"/apts || exit 1
+  cp "$DATA_DIR/todo-export" "$tmpdir"/todo || exit 1
+  "$CALCURSE" -D "$tmpdir" --export=ical | sed '/^PRODID/d'
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 BEGIN:VCALENDAR
diff --git a/test/ical-011.sh b/test/ical-011.sh
index 4b6c238..1b76e6d 100755
--- a/test/ical-011.sh
+++ b/test/ical-011.sh
@@ -3,18 +3,17 @@
 
 . "${TEST_INIT:-./test-init.sh}"
 
-mkdir .calcurse || exit 1
-cp "$DATA_DIR/conf" .calcurse || exit 1
-cp "$DATA_DIR/apts-export" .calcurse/apts || exit 1
-cp "$DATA_DIR/todo-export" .calcurse/todo || exit 1
+tmpdir=$(mktemp -d)
+cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+cp "$DATA_DIR/apts-export" "$tmpdir"/apts || exit 1
+cp "$DATA_DIR/todo-export" "$tmpdir"/todo || exit 1
 
-"$CALCURSE" -D "$PWD/.calcurse" --export=ical > "$PWD"/.calcurse/export.ical &&
-(cd .calcurse; mv apts apts-export; mv todo todo-export) &&
-"$CALCURSE" -D "$PWD/.calcurse" --quiet --import \
-  "$PWD"/.calcurse/export.ical &&
-(cd .calcurse; cmp -s apts-export apts) &&
-(cd .calcurse; cmp -s todo-export todo) &&
+"$CALCURSE" -D "$tmpdir" --export=ical >"$tmpdir"/export.ical &&
+(cd "$tmpdir"; mv apts apts-export; mv todo todo-export) &&
+"$CALCURSE" -D "$tmpdir" --quiet --import "$tmpdir"/export.ical &&
+(cd "$tmpdir"; cmp -s apts-export apts) &&
+(cd "$tmpdir"; cmp -s todo-export todo) &&
 status=0 || status=1
 
-rm -rf .calcurse
+rm -rf "$tmpdir" || exit 1
 exit $status
diff --git a/test/ical-012.sh b/test/ical-012.sh
index f4b27df..38ae673 100755
--- a/test/ical-012.sh
+++ b/test/ical-012.sh
@@ -7,11 +7,11 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse &&
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-012.ical"
-  (cd  "$PWD/.calcurse/notes/"; cat $(ls -S1))
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/ical-012.ical"
+  (cd "$tmpdir/notes/"; cat $(ls -S1))
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0089 lines read
diff --git a/test/ical-013.sh b/test/ical-013.sh
index f5d012b..6509996 100755
--- a/test/ical-013.sh
+++ b/test/ical-013.sh
@@ -4,11 +4,11 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  TZ=America/New_York "$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/rfc5545.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -s09/01/1997 -r365
-  rm -rf .calcurse || exit 1
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  TZ=America/New_York "$CALCURSE" -D "$tmpdir" -i "$DATA_DIR/rfc5545.ical"
+  "$CALCURSE" -D "$tmpdir" -s09/01/1997 -r365
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat <<EOD
 Import process report: 0238 lines read
diff --git a/test/ical-014.sh b/test/ical-014.sh
index 68f36a1..18134bf 100755
--- a/test/ical-014.sh
+++ b/test/ical-014.sh
@@ -4,17 +4,17 @@
 . "${TEST_INIT:-./test-init.sh}"
 
 if [ "$1" = 'actual' ]; then
-  mkdir .calcurse || exit 1
-  cp "$DATA_DIR/conf" .calcurse || exit 1
-  "$CALCURSE" -q -D "$PWD/.calcurse" -i "$DATA_DIR/ical-014.ical"
-  "$CALCURSE" -D "$PWD/.calcurse" -x | 
+  tmpdir=$(mktemp -d)
+  cp "$DATA_DIR/conf" "$tmpdir" || exit 1
+  "$CALCURSE" -q -D "$tmpdir" -i "$DATA_DIR/ical-014.ical"
+  "$CALCURSE" -D "$tmpdir" -x |
   sed -n '
 	/DESCRIPTION/p
 	/LOCATION/p
 	/COMMENT/p
   ' |
   sort
-  rm -rf .calcurse || exit 1
+  rm -rf "$tmpdir" || exit 1
 elif [ "$1" = 'expected' ]; then
   cat "$DATA_DIR/ical-014.ical" |
   sed -n '
-- 
cgit v1.2.3-70-g09d2