use strict;
use warnings;
-use Test::More tests => 35;
+use Test::More tests => 43;
use Data::Dump qw(dump);
use lib 'lib';
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 );
}
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';
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';