diff --git a/src/post_modules/Shuffler/testsuite.in b/src/post_modules/Shuffler/testsuite.in index 3c895158032ae8c964e955485107dc8beb72b890..0443425e8683842b25d91f9879f230eeef230970 100644 --- a/src/post_modules/Shuffler/testsuite.in +++ b/src/post_modules/Shuffler/testsuite.in @@ -21,7 +21,16 @@ cond([[master()->resolv("Pike.PollDeviceBackend")]], [[ sfr->set_backend (pb); Shuffler.Shuffle sf = sfr->shuffle(f); sf->add_source("xyz\n" * 100000); - return f2->read(); + sf->set_done_callback( lambda() { sf->stop(); destruct(sf); }); + sf->start(); + string res = ""; + f2->set_backend(pb); + f2->set_read_callback( lambda(mixed id, string s) { res += s; }); + while (sf) { + pb(1.0); + } + f->close(); + return res + f2->read(); ]], "xyz\n" * 100000) ]]) @@ -33,7 +42,16 @@ cond([[master()->resolv("Pike.PollBackend")]], [[ sfr->set_backend (pb); Shuffler.Shuffle sf = sfr->shuffle(f); sf->add_source("xyz\n" * 100000); - return f2->read(); + sf->set_done_callback( lambda() { sf->stop(); destruct(sf); }); + sf->start(); + string res = ""; + f2->set_backend(pb); + f2->set_read_callback( lambda(mixed id, string s) { res += s; }); + while (sf) { + pb(1.0); + } + f->close(); + return res + f2->read(); ]], "xyz\n" * 100000) ]]) @@ -45,7 +63,16 @@ cond([[master()->resolv("Pike.SelectBackend")]], [[ sfr->set_backend (pb); Shuffler.Shuffle sf = sfr->shuffle(f); sf->add_source("xyz\n" * 100000); - return f2->read(); + sf->set_done_callback( lambda() { sf->stop(); destruct(sf); }); + sf->start(); + string res = ""; + f2->set_backend(pb); + f2->set_read_callback( lambda(mixed id, string s) { res += s; }); + while (sf) { + pb(1.0); + } + f->close(); + return res + f2->read(); ]], "xyz\n" * 100000) ]])