diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-12-17 13:15:45 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-12-17 13:15:45 -0500 |
commit | 3d5154550c92766347631e4d15fae825a0f165dd (patch) | |
tree | 1c696321c3613a2983d1872934b6d76d6931d9f5 /src/test/test_microdesc.c | |
parent | 59f50c80d443a7e148f85cfed493e3e703cc4386 (diff) | |
parent | d8cfa2ef4e6d57f6dd4a33e5b3cfb1a2a12fc4be (diff) | |
download | tor-3d5154550c92766347631e4d15fae825a0f165dd.tar.gz tor-3d5154550c92766347631e4d15fae825a0f165dd.zip |
Merge remote-tracking branch 'public/bug10409_023' into maint-0.2.4
Diffstat (limited to 'src/test/test_microdesc.c')
-rw-r--r-- | src/test/test_microdesc.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c index a8171a325c..53a03a48ad 100644 --- a/src/test/test_microdesc.c +++ b/src/test/test_microdesc.c @@ -240,8 +240,53 @@ test_md_cache(void *data) tor_free(fn); } +static const char truncated_md[] = + "@last-listed 2013-08-08 19:02:59\n" + "onion-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIGJAoGBAM91vLFNaM+gGhnRIdz2Cm/Kl7Xz0cOobIdVzhS3cKUJfk867hCuTipS\n" + "NveLBzNopvgXKruAAzEj3cACxk6Q8lv5UWOGCD1UolkgsWSE62RBjap44g+oc9J1\n" + "RI9968xOTZw0VaBQg9giEILNXl0djoikQ+5tQRUvLDDa67gpa5Q1AgMBAAE=\n" + "-----END RSA PUBLIC KEY-----\n" + "family @\n"; + +static void +test_md_cache_broken(void *data) +{ + or_options_t *options; + char *fn=NULL; + microdesc_cache_t *mc = NULL; + + (void)data; + + options = get_options_mutable(); + tt_assert(options); + options->DataDirectory = tor_strdup(get_fname("md_datadir_test2")); + +#ifdef _WIN32 + tt_int_op(0, ==, mkdir(options->DataDirectory)); +#else + tt_int_op(0, ==, mkdir(options->DataDirectory, 0700)); +#endif + + tor_asprintf(&fn, "%s"PATH_SEPARATOR"cached-microdescs", + options->DataDirectory); + + write_str_to_file(fn, truncated_md, 1); + + mc = get_microdesc_cache(); + tt_assert(mc); + + done: + if (options) + tor_free(options->DataDirectory); + tor_free(fn); + microdesc_free_all(); +} + struct testcase_t microdesc_tests[] = { { "cache", test_md_cache, TT_FORK, NULL, NULL }, + { "broken_cache", test_md_cache_broken, TT_FORK, NULL, NULL }, END_OF_TESTCASES }; |