diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-02-01 14:55:18 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-02-01 15:04:55 +0100 |
commit | bc4e2320e7dafea8b6d6b6150c808ed2a98d7d03 (patch) | |
tree | b4aa13fe91fa727d4a35af2a76ae3ba171e80d2b /qpdf/qpdfjob-ctest.c | |
parent | 03e67a28fed49594c4f20718ce17d4852b40c83d (diff) | |
download | qpdf-bc4e2320e7dafea8b6d6b6150c808ed2a98d7d03.tar.zst |
Add qpdfjob-c.h -- simple C API around parts of QPDFJob
Diffstat (limited to 'qpdf/qpdfjob-ctest.c')
-rw-r--r-- | qpdf/qpdfjob-ctest.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/qpdf/qpdfjob-ctest.c b/qpdf/qpdfjob-ctest.c new file mode 100644 index 00000000..3de2fa96 --- /dev/null +++ b/qpdf/qpdfjob-ctest.c @@ -0,0 +1,73 @@ +#include <qpdf/qpdfjob-c.h> +#include <stdio.h> +#include <assert.h> +#include <stdlib.h> +#include <string.h> + +#ifndef QPDF_NO_WCHAR_T +static void wide_test() +{ + wchar_t* argv[5]; + argv[0] = (wchar_t*)(L"qpdfjob"); + argv[1] = (wchar_t*)(L"minimal.pdf"); + argv[2] = (wchar_t*)(L"a.pdf"); + argv[3] = (wchar_t*)(L"--static-id"); + argv[4] = NULL; + assert(qpdfjob_run_from_wide_argv(4, argv) == 0); + printf("wide test passed\n"); +} +#endif // QPDF_NO_WCHAR_T + +static void run_tests() +{ + /* Be sure to use a different output file for each test. */ + + char* argv[5]; + argv[0] = (char*)("qpdfjob"); + argv[1] = (char*)("minimal.pdf"); + argv[2] = (char*)("a.pdf"); + argv[3] = (char*)("--deterministic-id"); + argv[4] = NULL; + assert(qpdfjob_run_from_argv(4, argv) == 0); + printf("argv test passed\n"); + + assert(qpdfjob_run_from_json("{\n\ + \"inputFile\": \"20-pages.pdf\",\n\ + \"password\": \"user\",\n\ + \"outputFile\": \"b.pdf\",\n\ + \"staticId\": \"\",\n\ + \"decrypt\": \"\",\n\ + \"objectStreams\": \"generate\"\n\ +}") == 0); + printf("json test passed\n"); + + assert(qpdfjob_run_from_json("{\n\ + \"inputFile\": \"xref-with-short-size.pdf\",\n\ + \"outputFile\": \"c.pdf\",\n\ + \"staticId\": \"\",\n\ + \"decrypt\": \"\",\n\ + \"objectStreams\": \"generate\"\n\ +}") == 3); + printf("json warn test passed\n"); + + assert(qpdfjob_run_from_json("{\n\ + \"inputFile\": \"nothing-there.pdf\"\n\ +}") == 2); + printf("json error test passed\n"); +} + +int main(int argc, char* argv[]) +{ + if ((argc == 2) && (strcmp(argv[1], "wide") == 0)) + { +#ifndef QPDF_NO_WCHAR_T + wide_test(); +#else + printf("skipped wide\n"); +#endif // QPDF_NO_WCHAR_T + return 0; + } + + run_tests(); + return 0; +} |