[pve-devel] applied: [PATCH container 1/3] use real days in setup tests

Wolfgang Bumiller w.bumiller at proxmox.com
Tue Aug 21 10:04:57 CEST 2018


applied series

On Thu, Jun 21, 2018 at 02:14:26PM +0200, Dominik Csapak wrote:
> so that we can drop the special case in the real code,
> use the real time in the tests
> 
> for that we replace the special string '@DAYS@' with
> the correct value, and reset the file afterwards
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  src/PVE/LXC/Setup/Base.pm               |  4 ----
>  src/test/run_setup_tests.pl             | 11 ++++++++++-
>  src/test/test-debian-009/etc/shadow.exp |  2 +-
>  src/test/test-debian-014/etc/shadow.exp |  2 +-
>  4 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/src/PVE/LXC/Setup/Base.pm b/src/PVE/LXC/Setup/Base.pm
> index 62e37b9..5c69959 100644
> --- a/src/PVE/LXC/Setup/Base.pm
> +++ b/src/PVE/LXC/Setup/Base.pm
> @@ -324,10 +324,6 @@ my $replacepw  = sub {
>  
>  	my $last_change = int(time()/(60*60*24));
>  
> -	if ($epw =~ m/^\$TEST\$/) { # for regression tests
> -	    $last_change = 12345;
> -	}
> -	
>  	while (defined (my $line = <$src>)) {
>  	    if ($shadow) {
>  		$line =~ s/^${user}:[^:]*:[^:]*:/${user}:${epw}:${last_change}:/;
> diff --git a/src/test/run_setup_tests.pl b/src/test/run_setup_tests.pl
> index b103cfa..bae94e8 100755
> --- a/src/test/run_setup_tests.pl
> +++ b/src/test/run_setup_tests.pl
> @@ -12,7 +12,16 @@ use PVE::LXC::Setup;
>  sub test_file {
>      my ($exp_fn, $real_fn) = @_;
>  
> -    return if system("diff -u '$exp_fn' '$real_fn'") == 0;
> +    # replace @DAYS@ with the current correct value
> +    if ($exp_fn =~ m/shadow.exp$/) {
> +	my $expecteddays = int(time()/(60*60*24));
> +	system ("sed -i.bak 's/\@DAYS\@/$expecteddays/' $exp_fn");

Though I'm not a big fan of this one...
But then, mocking time() would probably be worse...

> +	my $ret = system("diff -u '$exp_fn' '$real_fn'");
> +	system("mv '$exp_fn.bak' '$exp_fn'");
> +	return if $ret == 0;
> +    } else {
> +	return if system("diff -u '$exp_fn' '$real_fn'") == 0;
> +    }
>  
>      die "files do not match\n";
>  }
> diff --git a/src/test/test-debian-009/etc/shadow.exp b/src/test/test-debian-009/etc/shadow.exp
> index deb9e2d..34768b5 100644
> --- a/src/test/test-debian-009/etc/shadow.exp
> +++ b/src/test/test-debian-009/etc/shadow.exp
> @@ -1,4 +1,4 @@
> -root:$TEST$ABCDEF:12345:0:99999:7:::
> +root:$TEST$ABCDEF:@DAYS@:0:99999:7:::
>  daemon:*:15908:0:99999:7:::
>  bin:*:15908:0:99999:7:::
>  sys:*:15908:0:99999:7:::
> diff --git a/src/test/test-debian-014/etc/shadow.exp b/src/test/test-debian-014/etc/shadow.exp
> index deb9e2d..34768b5 100644
> --- a/src/test/test-debian-014/etc/shadow.exp
> +++ b/src/test/test-debian-014/etc/shadow.exp
> @@ -1,4 +1,4 @@
> -root:$TEST$ABCDEF:12345:0:99999:7:::
> +root:$TEST$ABCDEF:@DAYS@:0:99999:7:::
>  daemon:*:15908:0:99999:7:::
>  bin:*:15908:0:99999:7:::
>  sys:*:15908:0:99999:7:::
> -- 
> 2.11.0




More information about the pve-devel mailing list