+gearman( 'user_usage' => $user );
+
+gearman( $hostname . '_s1_torrent_list' );
+
+diag "create .meta/files if it doesn't exist";
+foreach my $login ( $u1, $u2 ) {
+ gearman list_files => "~$login";
+ ok file_exists "~$login/.meta/files", "file_exists ~$login/.meta/files";
+}
+
+file_exists "~$u1/foo.txt" || BAIL_OUT("~$u1/foo.txt is required for rest of tests");
+
+gearman send_file => "~$u1/foo.txt#~$u2/dir with space/file with space";
+test_refresh_file_list "$u2";
+
+gearman delete => "~$u2/dir with space/file with space";
+test_refresh_file_list "$u2";
+
+gearman send_file => "~$u1/foo.txt#~$u2/foo.txt";
+test_refresh_file_list "$u2";
+
+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 => "~$u1/foo.txt" ), '==',
+gearman( file_size => "~$u2/baz.txt" ), 'size_same';
+
+diag "test symlink to other shard";
+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 => "~$u2/baz.txt";
+test_refresh_file_list "$u2";
+
+ok ! file_exists "~$u2/baz.txt", 'deleted file size';
+