# # # patch "basic_io.cc" # from [042b1a77b3120f06c9744193d166942a88c9da14] # to [710f0ead113a44b5158957bab7408a9480cbb0b6] # # patch "mtn_cvs/cvs_sync.cc" # from [b4a1c3a5e813c5cd8ad5615d20bece0c67881260] # to [4aa8ce3cb6e5d3727103a927eb6c3dc3925ec33c] # # patch "mtn_cvs/cvs_sync.hh" # from [6bd234f9e025b22dbc88a25ff1f8d23cc3a1a49c] # to [02ddaa333843077efbc0169196e919feecfa04c2] # # patch "mtn_cvs/mtn_automate.cc" # from [c252fa47c7ba2809faf0efe5ddab59791420a63c] # to [95375ee8c341f5f2c4a653039f3f18f483eb9612] # # patch "mtn_cvs/mtn_cvs.cc" # from [1dd846d33754c382e9c7b431ddba0822aaa94cad] # to [8feb40a9813c755fc8d6b4b82ba9c686af2387e1] # ============================================================ --- basic_io.cc 042b1a77b3120f06c9744193d166942a88c9da14 +++ basic_io.cc 710f0ead113a44b5158957bab7408a9480cbb0b6 @@ -176,6 +176,34 @@ string basic_io::parser::tt2str(token_ty return "TOK_UNKNOWN"; } +#ifdef BUILD_UNIT_TESTS +#include "unit_tests.hh" +//#include + +UNIT_TEST(basic_io, binary_transparency) +{ + std::string testpattern; + for (unsigned i=0; i<256; ++i) testpattern+=char(i); + + static symbol test("test"); + + basic_io::printer printer; + basic_io::stanza st; + st.push_str_pair(test, testpattern); + printer.print_stanza(st); + + basic_io::input_source source(printer.buf, "unit test string"); + basic_io::tokenizer tokenizer(source); + basic_io::parser parser(tokenizer); + std::string t1; + parser.esym(test); + parser.sym(); + parser.str(t1); + assert(testpattern==t1); +} + +#endif // BUILD_UNIT_TESTS + // Local Variables: // mode: C++ // fill-column: 76 ============================================================ --- mtn_cvs/cvs_sync.cc b4a1c3a5e813c5cd8ad5615d20bece0c67881260 +++ mtn_cvs/cvs_sync.cc 4aa8ce3cb6e5d3727103a927eb6c3dc3925ec33c @@ -1725,6 +1725,14 @@ void cvs_repository::takeover() // store_modules(); } +void cvs_sync::test(mtncvs_state &app) +{ + I(!app.opts.revisions.empty()); + app.open(); + revision_id rid=*app.opts.revisions.begin(); + app.get_revision_certs(rid); +} + // read in directory put into db void cvs_sync::takeover(mtncvs_state &app, const std::string &_module) { std::string root,module=_module,branch; ============================================================ --- mtn_cvs/cvs_sync.hh 6bd234f9e025b22dbc88a25ff1f8d23cc3a1a49c +++ mtn_cvs/cvs_sync.hh 02ddaa333843077efbc0169196e919feecfa04c2 @@ -214,4 +214,5 @@ void takeover(mtncvs_state &app, const s std::string const& branch, mtncvs_state &app); void debug(const std::string &command, const std::string &arg, mtncvs_state &app); void takeover(mtncvs_state &app, const std::string &module); +void test(mtncvs_state &app); } // end namespace cvs_sync ============================================================ --- mtn_cvs/mtn_automate.cc c252fa47c7ba2809faf0efe5ddab59791420a63c +++ mtn_cvs/mtn_automate.cc 95375ee8c341f5f2c4a653039f3f18f483eb9612 @@ -9,6 +9,7 @@ #include #include #include +#include using std::string; using std::make_pair; @@ -299,7 +300,7 @@ std::vector m { std::vector args; args.push_back(rid.inner()()); std::string aresult=automate("certs",args); - + basic_io::input_source source(aresult,"automate get_revision_certs result"); basic_io::tokenizer tokenizer(source); basic_io::parser pa(tokenizer); ============================================================ --- mtn_cvs/mtn_cvs.cc 1dd846d33754c382e9c7b431ddba0822aaa94cad +++ mtn_cvs/mtn_cvs.cc 8feb40a9813c755fc8d6b4b82ba9c686af2387e1 @@ -141,6 +141,15 @@ CMD(takeover, N_("working copy"), N_("[C cvs_sync::takeover(myapp, module); } +CMD(test, N_("debug"), "", + N_("attempt to parse certs"), + options::opts::revision) +{ + if (args.size()) throw usage(name); + mtncvs_state &myapp=mtncvs_state::upcast(app); + cvs_sync::test(myapp); +} + #include using std::cout;