From 109475997532b0397ea40c539829485c0c14ab37 Mon Sep 17 00:00:00 2001 From: Axel Kittenberger Date: Fri, 9 Mar 2018 13:05:45 +0100 Subject: [PATCH] adding filter to testsuite, removing #! from testsuite --- CMakeLists.txt | 1 + tests/churn-direct.lua | 1 - tests/churn-rsync.lua | 2 +- tests/churn-rsyncssh.lua | 1 - tests/exclude-rsync.lua | 54 +++++++------- tests/exclude-rsyncssh.lua | 2 - tests/filter-rsync.lua | 146 +++++++++++++++++++++++++++++++++++++ tests/l4rsyncdata.lua | 1 - tests/schedule.lua | 1 - 9 files changed, 174 insertions(+), 35 deletions(-) create mode 100644 tests/filter-rsync.lua diff --git a/CMakeLists.txt b/CMakeLists.txt index d7dea10..b1dde4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,7 @@ add_custom_target( tests COMMAND echo " * have a passwordless ssh access to localhost" COMMAND ${LUA_EXECUTABLE} tests/schedule.lua COMMAND ${LUA_EXECUTABLE} tests/l4rsyncdata.lua + COMMAND ${LUA_EXECUTABLE} tests/filter-rsync.lua COMMAND ${LUA_EXECUTABLE} tests/exclude-rsync.lua COMMAND ${LUA_EXECUTABLE} tests/exclude-rsyncssh.lua COMMAND ${LUA_EXECUTABLE} tests/churn-rsync.lua diff --git a/tests/churn-direct.lua b/tests/churn-direct.lua index c01744c..8826b88 100644 --- a/tests/churn-direct.lua +++ b/tests/churn-direct.lua @@ -1,4 +1,3 @@ -#!/usr/bin/lua -- a heavy duty test. -- makes thousends of random changes to the source tree diff --git a/tests/churn-rsync.lua b/tests/churn-rsync.lua index f7d3025..e72b090 100644 --- a/tests/churn-rsync.lua +++ b/tests/churn-rsync.lua @@ -1,6 +1,6 @@ -#!/usr/bin/lua -- a heavy duty test. -- makes thousends of random changes to the source tree + require( 'posix' ) dofile( 'tests/testlib.lua' ) diff --git a/tests/churn-rsyncssh.lua b/tests/churn-rsyncssh.lua index 2633a42..379dbbb 100644 --- a/tests/churn-rsyncssh.lua +++ b/tests/churn-rsyncssh.lua @@ -1,4 +1,3 @@ -#!/usr/bin/lua -- a heavy duty test. -- makes thousends of random changes to the source tree diff --git a/tests/exclude-rsync.lua b/tests/exclude-rsync.lua index bab760a..aac6eed 100644 --- a/tests/exclude-rsync.lua +++ b/tests/exclude-rsync.lua @@ -1,16 +1,15 @@ -#!/usr/bin/lua -require("posix") -dofile("tests/testlib.lua") +require( 'posix' ) +dofile( 'tests/testlib.lua' ) -cwriteln('****************************************************************' ) -cwriteln(' Testing excludes (rsync)' ) -cwriteln('****************************************************************' ) +cwriteln( '****************************************************************' ) +cwriteln( ' Testing excludes (rsync)' ) +cwriteln(' ****************************************************************' ) local tdir, srcdir, trgdir = mktemps( ) -local logfile = tdir .. "log" -local cfgfile = tdir .. "config.lua" +local logfile = tdir .. 'log' +local cfgfile = tdir .. 'config.lua' local range = 5 -local log = {"-log", "all"} +local log = { '-log', 'all' } writefile(cfgfile, [[ settings { @@ -34,15 +33,15 @@ sync { -- writes all files local function writefiles ( ) - posix.mkdir( srcdir .. "d" ) - writefile( srcdir .. "erf", "erf" ) - writefile( srcdir .. "eaf", "erf" ) - writefile( srcdir .. "erd", "erd" ) - writefile( srcdir .. "ead", "ead" ) - writefile( srcdir .. "d/erf", "erf" ) - writefile( srcdir .. "d/eaf", "erf" ) - writefile( srcdir .. "d/erd", "erd" ) - writefile( srcdir .. "d/ead", "ead" ) + posix.mkdir( srcdir .. 'd' ) + writefile( srcdir .. 'erf', 'erf' ) + writefile( srcdir .. 'eaf', 'erf' ) + writefile( srcdir .. 'erd', 'erd' ) + writefile( srcdir .. 'ead', 'ead' ) + writefile( srcdir .. 'd/erf', 'erf' ) + writefile( srcdir .. 'd/eaf', 'erf' ) + writefile( srcdir .. 'd/erd', 'erd' ) + writefile( srcdir .. 'd/ead', 'ead' ) end -- @@ -73,14 +72,14 @@ end -- test all files local function testfiles ( ) - testfile( trgdir .. "erf", false ) - testfile( trgdir .. "eaf", false ) - testfile( trgdir .. "erd", true ) - testfile( trgdir .. "ead", true ) - testfile( trgdir .. "d/erf", false ) - testfile( trgdir .. "d/eaf", true ) - testfile( trgdir .. "d/erd", true ) - testfile( trgdir .. "d/ead", true ) + testfile( trgdir .. 'erf', false ) + testfile( trgdir .. 'eaf', false ) + testfile( trgdir .. 'erd', true ) + testfile( trgdir .. 'ead', true ) + testfile( trgdir .. 'd/erf', false ) + testfile( trgdir .. 'd/eaf', true ) + testfile( trgdir .. 'd/erd', true ) + testfile( trgdir .. 'd/ead', true ) end @@ -144,8 +143,7 @@ cwriteln( 'Exitcode of Lsyncd = ', exitmsg, ' ', exitcode ); if exitcode == 143 then - cwriteln( "OK" ) - + cwriteln( 'OK' ) os.exit( 0 ) else os.exit( 1 ) diff --git a/tests/exclude-rsyncssh.lua b/tests/exclude-rsyncssh.lua index f79703f..495b931 100644 --- a/tests/exclude-rsyncssh.lua +++ b/tests/exclude-rsyncssh.lua @@ -1,5 +1,3 @@ -#!/usr/bin/lua - require( 'posix' ) dofile( 'tests/testlib.lua' ) diff --git a/tests/filter-rsync.lua b/tests/filter-rsync.lua new file mode 100644 index 0000000..5246519 --- /dev/null +++ b/tests/filter-rsync.lua @@ -0,0 +1,146 @@ +require( 'posix' ) +dofile( 'tests/testlib.lua' ) + +cwriteln( '****************************************************************' ) +cwriteln( ' Testing filters (rsync)' ) +cwriteln( '****************************************************************' ) + +local tdir, srcdir, trgdir = mktemps( ) +local logfile = tdir .. "log" +local cfgfile = tdir .. "config.lua" +local range = 5 +local log = {"-log", "all"} + +writefile(cfgfile, [[ +settings { + logfile = ']]..logfile..[[', + nodaemon = true, +} + +sync { + default.rsync, + source = ']]..srcdir..[[', + target = ']]..trgdir..[[', + delay = 3, + filter = { + '- /ab**', + '+ /a**', + '- /**', + }, +}]]) + +-- writes all files +local function writefiles +( ) + writefile( srcdir .. 'abc', 'abc' ) + writefile( srcdir .. 'acc', 'acc' ) + writefile( srcdir .. 'baa', 'baa' ) + posix.mkdir( srcdir .. 'abx' ) + writefile( srcdir .. 'abx/a', 'abxa' ) + posix.mkdir( srcdir .. 'acx' ) + writefile( srcdir .. 'acx/x', 'acxx' ) +end + +-- +-- Tests if the filename exists +-- fails if this is different to expect. +-- +local function testfile +( + filename, + expect +) + local stat, err = posix.stat( filename ) + + if stat and not expect + then + cwriteln( 'failure: ', filename, ' should be filtered') + + os.exit( 1 ) + end + + if not stat and expect + then + cwriteln( 'failure: ', filename, ' should not be filtered' ) + os.exit( 1 ) + end +end + +-- test all files +local function testfiles +( ) + testfile( trgdir .. 'abc', false ) + testfile( trgdir .. 'acc', true ) + testfile( trgdir .. 'baa', false ) + testfile( trgdir .. 'abx/a', false ) + testfile( trgdir .. 'acx/x', true ) +end + + +cwriteln( 'testing startup filters' ) + +writefiles( ) + +cwriteln( 'starting Lsyncd' ) + +local pid = spawn( './lsyncd', cfgfile, '-log', 'all' ) + +cwriteln( 'waiting for Lsyncd to start' ) + +posix.sleep( 3 ) + +cwriteln( 'testing filters after startup' ) + +testfiles( ) + +cwriteln( 'ok, removing sources' ) + +if srcdir:sub( 1,4 ) ~= '/tmp' +then + -- just to make sure before rm -rf + cwriteln( 'exit before drama, srcdir is "', srcdir, '"' ) + + os.exit( 1 ) +end + +os.execute( 'rm -rf '..srcdir..'/*' ) + +cwriteln( 'waiting for Lsyncd to remove destination' ) + +posix.sleep( 5 ) + +_, result, code = os.execute( 'diff -urN ' .. srcdir .. ' ' .. trgdir ) + +if result ~= 'exit' or code ~= 0 +then + cwriteln( 'fail, target directory not empty!' ) + + os.exit( 1 ) +end + +cwriteln( 'writing files after startup' ) + +writefiles( ) + +cwriteln( 'waiting for Lsyncd to transmit changes' ) + +posix.sleep( 5 ) + +testfiles( ) + +cwriteln( 'killing started Lsyncd' ) + +posix.kill( pid ) +local _, exitmsg, exitcode = posix.wait( lpid ) + +cwriteln( 'Exitcode of Lsyncd = ', exitmsg, ' ', exitcode ); + +if exitcode == 143 +then + cwriteln( 'OK' ) + os.exit( 0 ) +else + os.exit( 1 ) +end + +-- TODO remove temp diff --git a/tests/l4rsyncdata.lua b/tests/l4rsyncdata.lua index 86586c0..f114c89 100644 --- a/tests/l4rsyncdata.lua +++ b/tests/l4rsyncdata.lua @@ -1,4 +1,3 @@ -#!/usr/bin/lua require( 'posix' ) dofile( 'tests/testlib.lua' ) diff --git a/tests/schedule.lua b/tests/schedule.lua index 7201e8a..143799d 100644 --- a/tests/schedule.lua +++ b/tests/schedule.lua @@ -1,4 +1,3 @@ -#!/usr/bin/lua require( 'posix' ) dofile( 'tests/testlib.lua' )