-import sys, os, time, random, subprocess
+import sys, os, stat, time, random, subprocess, glob
from bup import client, git
from wvtest import *
s1 = randbytes(10000)
s2 = randbytes(10000)
+s3 = randbytes(10000)
+
+IDX_PAT = '/*.idx'
@wvtest
def test_server_split_with_indexes():
rw.new_blob(s1)
+@wvtest
+def test_multiple_suggestions():
+ os.environ['BUP_MAIN_EXE'] = '../../../bup'
+ os.environ['BUP_DIR'] = bupdir = 'buptest_tclient.tmp'
+ subprocess.call(['rm', '-rf', bupdir])
+ git.init_repo(bupdir)
+
+ lw = git.PackWriter()
+ lw.new_blob(s1)
+ lw.close()
+ lw = git.PackWriter()
+ lw.new_blob(s2)
+ lw.close()
+ WVPASSEQ(len(glob.glob(git.repo('objects/pack'+IDX_PAT))), 2)
+
+ c = client.Client(bupdir, create=True)
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 0)
+ rw = c.new_packwriter()
+ rw.new_blob(s1)
+ rw.new_blob(s2)
+ # This is a little hacky, but ensures that we test the code under test
+ while len(glob.glob(c.cachedir+IDX_PAT)) < 2 and not c.conn.has_input(): pass
+ rw.new_blob(s3)
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 2)
+ rw.close()
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 3)
+
+
@wvtest
def test_dumb_client_server():
os.environ['BUP_MAIN_EXE'] = '../../../bup'
os.environ['BUP_DIR'] = bupdir = 'buptest_tclient.tmp'
subprocess.call(['rm', '-rf', bupdir])
git.init_repo(bupdir)
- os.mknod(git.repo('bup-dumb-server'))
+ open(git.repo('bup-dumb-server'), 'w').close()
lw = git.PackWriter()
lw.new_blob(s1)
c = client.Client(bupdir, create=True)
rw = c.new_packwriter()
- WVPASSEQ(len(os.listdir(c.cachedir)), 1)
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 1)
rw.new_blob(s1)
- WVPASSEQ(len(os.listdir(c.cachedir)), 1)
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 1)
rw.new_blob(s2)
rw.close()
- WVPASSEQ(len(os.listdir(c.cachedir)), 2)
+ WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 2)
@wvtest