# # # add_file "tests/t_rosterify_empty_manifest.at" # content [dfc08f23727203a75fff740bed75908c2253a878] # # patch "ChangeLog" # from [fef800407db73890666a04ec5c024022dc7d34da] # to [0619b84c6634af953476cccff05280be3dbd8450] # # patch "testsuite.at" # from [2db16b2a72b6f06378cf9b8b19b73dca55190eae] # to [cb9b6519a63379f5e71ac1799cff134e13a4bba7] # ============================================================ --- tests/t_rosterify_empty_manifest.at dfc08f23727203a75fff740bed75908c2253a878 +++ tests/t_rosterify_empty_manifest.at dfc08f23727203a75fff740bed75908c2253a878 @@ -0,0 +1,91 @@ +AT_SETUP([rosterify on a db with an empty manifest]) +MTN_SETUP +NEED_UNGZB64 + +# This is a db containing two revisions. The first adds a single file (afile). +# The second revision deletes that file, leaving an empty manifest. + +AT_DATA([test.db.dump.gz.b64], [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 +]) + +AT_CHECK(rm -f test.db) + +UNGZB64(test.db.dump.gz.b64, test.db.dump) +AT_CHECK(MTN db load < test.db.dump, [], [ignore], [ignore]) +AT_CHECK(MTN db migrate, [], [ignore], [ignore]) + +AT_CHECK(MTN db rosterify, [], [ignore], [ignore]) + +AT_DATA([revision_good], [format_version "1" + +new_manifest @<:@ec9ef3a345b0766c1e03c47c1e22b1fe174395e7@:>@ + +old_revision @<:@9a0e6637605966d7a125f7c8932bed02ee930207@:>@ + +delete "afile" +]) +CHECK_SAME_CANONICALISED_STDOUT(cat revision_good, MTN automate select h:testbranch | MTN automate get_revision address@hidden) + +AT_DATA([manifest_good], [format_version "1" + +dir "" +]) +CHECK_SAME_CANONICALISED_STDOUT(cat manifest_good, MTN automate select h:testbranch | MTN automate get_manifest_of address@hidden) + +AT_CLEANUP ============================================================ --- ChangeLog fef800407db73890666a04ec5c024022dc7d34da +++ ChangeLog 0619b84c6634af953476cccff05280be3dbd8450 @@ -1,5 +1,10 @@ 2006-04-04 Matt Johnston + * tests/t_rosterify_empty_manifest.at: a test for rosterifying a db + that has empty manifests + +2006-04-04 Matt Johnston + * revision.cc (construct_revisions_from_ancestry): all rosters must be given a root node, even if all files have been dropped. ============================================================ --- testsuite.at 2db16b2a72b6f06378cf9b8b19b73dca55190eae +++ testsuite.at cb9b6519a63379f5e71ac1799cff134e13a4bba7 @@ -870,3 +870,4 @@ m4_include(tests/t_rosterify_mt_ignore.at) m4_include(tests/t_revert_file_blocked_by_dir.at) m4_include(tests/t_pidfile.at) +m4_include(tests/t_rosterify_empty_manifest.at)