URI: 
       tFix error in rm; start adding tests - lumia - Archive checksum manager
  HTML git clone git://lumidify.org/git/lumia.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 1061599573f0736206fa697f03963c569e8e9bcb
   DIR parent 7cbb7faab069d95a8822fbfde5dded1f38d15c1f
  HTML Author: lumidify <nobody@lumidify.org>
       Date:   Mon, 23 Mar 2020 20:40:20 +0100
       
       Fix error in rm; start adding tests
       
       Diffstat:
         M lumia.pl                            |       3 ++-
         D test/.lumidify_archive_cksums       |       4 ----
         D test/.lumidify_archive_cksums.cksum |       2 --
         D test/.lumidify_archive_dirs         |       3 ---
         D test/bob1                           |       1 -
         D test/bob2                           |       0 
         D test/bob3                           |       1 -
         D test/dir2/.lumidify_archive_cksums  |       1 -
         D test/dir2/.lumidify_archive_cksums… |       2 --
         D test/dir2/.lumidify_archive_dirs    |       1 -
         D test/dir2/dir/.lumidify_archive_ck… |       1 -
         D test/dir2/dir/.lumidify_archive_ck… |       2 --
         D test/dir2/dir/.lumidify_archive_di… |       0 
         D test/dir2/dir/meh                   |       0 
         D test/dir2/meh                       |       1 -
         D test/dir3/.lumidify_archive_cksums  |       1 -
         D test/dir3/.lumidify_archive_cksums… |       2 --
         D test/dir3/.lumidify_archive_dirs    |       0 
         D test/dir3/meh                       |       0 
         D test/dir4/.lumidify_archive_cksums  |       1 -
         D test/dir4/.lumidify_archive_cksums… |       2 --
         D test/dir4/.lumidify_archive_dirs    |       1 -
         D test/dir4/bob                       |       0 
         D test/dir4/dir/.lumidify_archive_ck… |       1 -
         D test/dir4/dir/.lumidify_archive_ck… |       2 --
         D test/dir4/dir/.lumidify_archive_di… |       0 
         D test/dir4/dir/bob                   |       0 
         D test/fred2                          |       1 -
         A tests/README                        |       2 ++
         A tests/alltests.sh                   |       3 +++
         A tests/filenames.sh                  |      21 +++++++++++++++++++++
         A tests/filenames.txt                 |      38 +++++++++++++++++++++++++++++++
         A tests/runtest.sh                    |      12 ++++++++++++
       
       33 files changed, 78 insertions(+), 31 deletions(-)
       ---
   DIR diff --git a/lumia.pl b/lumia.pl
       t@@ -375,6 +375,7 @@ sub check_add_new_files {
                                        warn "Checksum files corrupt in \"$_[0]\", not adding new checksums!\n";
                                        return 0;
                                }
       +
                        } else {
                                write_cksums($_[0], {}, 1, 1);
                        }
       t@@ -755,12 +756,12 @@ sub remove_from_same_dir {
                                next;
                        }
                        if (exists $cksums->{$file}) {
       -                        delete $cksums->{$file};
                                if (defined $cksums->{$file}) {
                                        $files_touched = 1;
                                } else {
                                        $dirs_touched = 1;
                                }
       +                        delete $cksums->{$file};
                        } else {
                                warn "WARNING: \"$file\" not in cksum or directory list.\n";
                        }
   DIR diff --git a/test/.lumidify_archive_cksums b/test/.lumidify_archive_cksums
       t@@ -1,4 +0,0 @@
       -2454254050 2 "bob3"
       -2418082923 2 "bob1"
       -2454254050 2 "fred2"
       -4294967295 0 "bob2"
   DIR diff --git a/test/.lumidify_archive_cksums.cksum b/test/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -2943189886 81 ".lumidify_archive_cksums"
       -3971863640 21 ".lumidify_archive_dirs"
   DIR diff --git a/test/.lumidify_archive_dirs b/test/.lumidify_archive_dirs
       t@@ -1,3 +0,0 @@
       -"dir2"
       -"dir3"
       -"dir4"
   DIR diff --git a/test/bob1 b/test/bob1
       t@@ -1 +0,0 @@
       -a
   DIR diff --git a/test/bob2 b/test/bob2
   DIR diff --git a/test/bob3 b/test/bob3
       t@@ -1 +0,0 @@
       -b
   DIR diff --git a/test/dir2/.lumidify_archive_cksums b/test/dir2/.lumidify_archive_cksums
       t@@ -1 +0,0 @@
       -2418082923 2 "meh"
   DIR diff --git a/test/dir2/.lumidify_archive_cksums.cksum b/test/dir2/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -137730780 6 ".lumidify_archive_dirs"
       -3978068116 19 ".lumidify_archive_cksums"
   DIR diff --git a/test/dir2/.lumidify_archive_dirs b/test/dir2/.lumidify_archive_dirs
       t@@ -1 +0,0 @@
       -"dir"
   DIR diff --git a/test/dir2/dir/.lumidify_archive_cksums b/test/dir2/dir/.lumidify_archive_cksums
       t@@ -1 +0,0 @@
       -4294967295 0 "meh"
   DIR diff --git a/test/dir2/dir/.lumidify_archive_cksums.cksum b/test/dir2/dir/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -43109071 19 ".lumidify_archive_cksums"
       -4294967295 0 ".lumidify_archive_dirs"
   DIR diff --git a/test/dir2/dir/.lumidify_archive_dirs b/test/dir2/dir/.lumidify_archive_dirs
   DIR diff --git a/test/dir2/dir/meh b/test/dir2/dir/meh
   DIR diff --git a/test/dir2/meh b/test/dir2/meh
       t@@ -1 +0,0 @@
       -a
   DIR diff --git a/test/dir3/.lumidify_archive_cksums b/test/dir3/.lumidify_archive_cksums
       t@@ -1 +0,0 @@
       -4294967295 0 "meh"
   DIR diff --git a/test/dir3/.lumidify_archive_cksums.cksum b/test/dir3/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -4294967295 0 ".lumidify_archive_dirs"
       -43109071 19 ".lumidify_archive_cksums"
   DIR diff --git a/test/dir3/.lumidify_archive_dirs b/test/dir3/.lumidify_archive_dirs
   DIR diff --git a/test/dir3/meh b/test/dir3/meh
   DIR diff --git a/test/dir4/.lumidify_archive_cksums b/test/dir4/.lumidify_archive_cksums
       t@@ -1 +0,0 @@
       -4294967295 0 "bob"
   DIR diff --git a/test/dir4/.lumidify_archive_cksums.cksum b/test/dir4/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -202046376 19 ".lumidify_archive_cksums"
       -137730780 6 ".lumidify_archive_dirs"
   DIR diff --git a/test/dir4/.lumidify_archive_dirs b/test/dir4/.lumidify_archive_dirs
       t@@ -1 +0,0 @@
       -"dir"
   DIR diff --git a/test/dir4/bob b/test/dir4/bob
   DIR diff --git a/test/dir4/dir/.lumidify_archive_cksums b/test/dir4/dir/.lumidify_archive_cksums
       t@@ -1 +0,0 @@
       -4294967295 0 "bob"
   DIR diff --git a/test/dir4/dir/.lumidify_archive_cksums.cksum b/test/dir4/dir/.lumidify_archive_cksums.cksum
       t@@ -1,2 +0,0 @@
       -202046376 19 ".lumidify_archive_cksums"
       -4294967295 0 ".lumidify_archive_dirs"
   DIR diff --git a/test/dir4/dir/.lumidify_archive_dirs b/test/dir4/dir/.lumidify_archive_dirs
   DIR diff --git a/test/dir4/dir/bob b/test/dir4/dir/bob
   DIR diff --git a/test/fred2 b/test/fred2
       t@@ -1 +0,0 @@
       -b
   DIR diff --git a/tests/README b/tests/README
       t@@ -0,0 +1,2 @@
       +All tests must sort the output from lumia.pl since the
       +order in the checksum files is random.
   DIR diff --git a/tests/alltests.sh b/tests/alltests.sh
       t@@ -0,0 +1,3 @@
       +#!/bin/sh
       +
       +./runtest.sh filenames
   DIR diff --git a/tests/filenames.sh b/tests/filenames.sh
       t@@ -0,0 +1,21 @@
       +#!/bin/sh
       +
       +mkdir tmp
       +cd tmp
       +mkdir -- ' a'
       +mkdir -- '-b'
       +mkdir -- '-c   
       +
       +'
       +touch -- ' a/-d'
       +touch -- '-b/$\%")'
       +cd ..
       +
       +../lumia.pl addnew tmp
       +../lumia.pl check tmp | sort
       +cat 'tmp/ a/.lumidify_archive_cksums' | sort
       +../lumia.pl rm 'tmp/ a/-d'
       +cat 'tmp/ a/.lumidify_archive_cksums' | sort
       +../lumia.pl check tmp/-b | sort
       +../lumia.pl check tmp | sort
       +rm -rf tmp
   DIR diff --git a/tests/filenames.txt b/tests/filenames.txt
       t@@ -0,0 +1,38 @@
       +Added "tmp/ a"
       +Added "tmp/-b"
       +Added "tmp/-c   
       +
       +"
       +Added "tmp/ a/-d"
       +Added "tmp/-b/$\%")"
       +
       +
       +/.lumidify_archive_cksums
       +/.lumidify_archive_dirs
       +OK tmp/ a/-d
       +OK tmp/ a/.lumidify_archive_cksums
       +OK tmp/ a/.lumidify_archive_dirs
       +OK tmp/-b/$\%")
       +OK tmp/-b/.lumidify_archive_cksums
       +OK tmp/-b/.lumidify_archive_dirs
       +OK tmp/-c   
       +OK tmp/-c   
       +OK tmp/.lumidify_archive_cksums
       +OK tmp/.lumidify_archive_dirs
       +4294967295 0 "-d"
       +OK tmp/-b/$\%")
       +OK tmp/-b/.lumidify_archive_cksums
       +OK tmp/-b/.lumidify_archive_dirs
       +
       +
       +/.lumidify_archive_cksums
       +/.lumidify_archive_dirs
       +OK tmp/ a/.lumidify_archive_cksums
       +OK tmp/ a/.lumidify_archive_dirs
       +OK tmp/-b/$\%")
       +OK tmp/-b/.lumidify_archive_cksums
       +OK tmp/-b/.lumidify_archive_dirs
       +OK tmp/-c   
       +OK tmp/-c   
       +OK tmp/.lumidify_archive_cksums
       +OK tmp/.lumidify_archive_dirs
   DIR diff --git a/tests/runtest.sh b/tests/runtest.sh
       t@@ -0,0 +1,12 @@
       +#!/bin/sh
       +
       +# Sure, eval may not be recommended practice, but then
       +# again, these are just tests...
       +eval "./$1.sh" > runtest.txt 2>&1
       +diff $1.txt runtest.txt > /dev/null
       +if [ $? -eq 0 ]; then
       +  echo "OK $1"
       +else
       +  echo "FAILED $1"
       +fi
       +rm runtest.txt