From fc1eb90c6c31458133e46ab167b0e9187f5e3771 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 15 Apr 2012 17:21:19 +0200 Subject: [PATCH] test more of Gearman API --- t/Gearman.t | 61 +++++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/t/Gearman.t b/t/Gearman.t index 4110614..8e211b4 100755 --- a/t/Gearman.t +++ b/t/Gearman.t @@ -2,7 +2,7 @@ use strict; use warnings; -use Test::More tests => 35; +use Test::More tests => 43; use Data::Dump qw(dump); use lib 'lib'; @@ -17,11 +17,11 @@ my $user = $ARGV[0] || 2001; sub gearman { my ( $function, $args ) = @_; ok( my $o = CloudStore::Gearman->gearman_do( @_ ), join(' ',@_) ); - diag dump $o; + diag "result = ",dump $o if $ENV{DEBUG}; return $o; } -sub file_exists { +sub file_exists($) { my ( $file ) = @_; CloudStore::Gearman->gearman_do( file_size => $file ); } @@ -32,6 +32,13 @@ sub test_refresh_file_list { gearman list_files => "~$login"; } +my $u1 = gearman 'create_user' => 'test@example.com secret 0'; +like $u1, qr/u\d+/, "login $u1"; +my $u2 = gearman 'create_user' => 'test2@example.com secret 0'; +like $u2, qr/u\d+/, "login $u2"; +my $u3 = gearman 'create_user' => 'slice2@example.com secret 0'; +like $u3, qr/u\d+/, "login $u2 (on other slice)"; + my $o = gearman $hostname . '_s1_quota_get' => $user; diag dump $o; cmp_ok $o, '=~', qr/^(\d+)\s+(\d+)$/, 'format: used quota'; @@ -41,40 +48,40 @@ gearman( 'user_usage' => $user ); gearman( $hostname . '_s1_torrent_list' ); diag "create .meta/files if it doesn't exist"; -foreach my $uid ( 2001, 2002 ) { - gearman list_files => "~u$uid"; - ok file_exists "~u$uid/.meta/files", "file_exists ~u$uid/.meta/files"; +foreach my $login ( $u1, $u2 ) { + gearman list_files => "~$login"; + ok file_exists "~$login/.meta/files", "file_exists ~$login/.meta/files"; } -file_exists '~u2001/foo.txt' || BAIL_OUT("~u2001/foo.txt is required for rest of tests"); +file_exists "~$u1/foo.txt" || BAIL_OUT("~$u1/foo.txt is required for rest of tests"); -gearman send_file => '~u2001/foo.txt#~u2002/dir with space/file with space'; -test_refresh_file_list 'u2002'; +gearman send_file => "~$u1/foo.txt#~$u2/dir with space/file with space"; +test_refresh_file_list "$u2"; -gearman delete => '~u2002/dir with space/file with space'; -test_refresh_file_list 'u2002'; +gearman delete => "~$u2/dir with space/file with space"; +test_refresh_file_list "$u2"; -gearman send_file => '~u2001/foo.txt#~u2002/foo.txt'; -test_refresh_file_list 'u2002'; +gearman send_file => "~$u1/foo.txt#~$u2/foo.txt"; +test_refresh_file_list "$u2"; -gearman rename_file => '~u2002/foo.txt#bar.txt'; -test_refresh_file_list 'u2002'; -gearman rename_file => '~u2002/bar.txt#baz.txt'; -test_refresh_file_list 'u2002'; +gearman rename_file => "~$u2/foo.txt#bar.txt"; +test_refresh_file_list "$u2"; +gearman rename_file => "~$u2/bar.txt#baz.txt"; +test_refresh_file_list "$u2"; cmp_ok -gearman( file_size => '~u2001/foo.txt' ), '==', -gearman( file_size => '~u2002/baz.txt' ), 'size_same'; +gearman( file_size => "~$u1/foo.txt" ), '==', +gearman( file_size => "~$u2/baz.txt" ), 'size_same'; diag "test symlink to other shard"; -gearman send_file => '~u2001/foo.txt#~u2004/foo.txt'; -my $size_1 = gearman( file_size => '~u2001/foo.txt' ); -my $size_2 = gearman( file_size => '~u2004/foo.txt' ); - -cmp_ok $size_1, '==', $size_2, 'symlink size same'; +gearman send_file => "~$u1/foo.txt#~$u3/foo.txt"; +cmp_ok +gearman( file_size => "~$u1/foo.txt" ), '==', +gearman( file_size => "~$u3/foo.txt" ), 'cross-slice symlink size same'; +test_refresh_file_list "$u3"; -gearman delete => '~u2002/baz.txt'; -test_refresh_file_list 'u2002'; +gearman delete => "~$u2/baz.txt"; +test_refresh_file_list "$u2"; -ok ! CloudStore::Gearman->gearman_do( file_size => '~u2002/baz.txt' ), 'deleted file size'; +ok ! file_exists "~$u2/baz.txt", 'deleted file size'; -- 2.20.1