gout

A static git page generator
git clone https://git.bracken.jp/gout.git
Log | Files | Refs | README | LICENSE

gout_options_tests.c (2772B)


      1 #include "gout.h"
      2 
      3 #include <stdlib.h>
      4 #include <string.h>
      5 
      6 #include "utest.h"
      7 
      8 UTEST(gout_options, Basic) {
      9   const char* argv[] = {"gout", "repo"};
     10   GoutOptions* options = gout_options_create(2, argv);
     11   ASSERT_NE(NULL, options);
     12   EXPECT_STREQ("repo", options->repodir);
     13   EXPECT_EQ((long long)-1, options->log_commit_limit);
     14   EXPECT_EQ(NULL, options->cachefile_path);
     15   EXPECT_STREQ("", options->baseurl);
     16   EXPECT_EQ((int)kRepoWriterTypeHtml, (int)options->writer_type);
     17   gout_options_free(options);
     18 }
     19 
     20 UTEST(gout_options, LogLimit) {
     21   const char* argv[] = {"gout", "-l", "50", "repo"};
     22   GoutOptions* options = gout_options_create(4, argv);
     23   ASSERT_NE(NULL, options);
     24   EXPECT_STREQ("repo", options->repodir);
     25   EXPECT_EQ((long long)50, options->log_commit_limit);
     26   gout_options_free(options);
     27 }
     28 
     29 UTEST(gout_options, Cachefile) {
     30   const char* argv[] = {"gout", "-c", "cache.db", "repo"};
     31   GoutOptions* options = gout_options_create(4, argv);
     32   ASSERT_NE(NULL, options);
     33   EXPECT_STREQ("repo", options->repodir);
     34   EXPECT_STREQ("cache.db", options->cachefile_path);
     35   gout_options_free(options);
     36 }
     37 
     38 UTEST(gout_options, BaseUrl) {
     39   const char* argv[] = {"gout", "-u", "https://example.com", "repo"};
     40   GoutOptions* options = gout_options_create(4, argv);
     41   ASSERT_NE(NULL, options);
     42   EXPECT_STREQ("https://example.com", options->baseurl);
     43   gout_options_free(options);
     44 }
     45 
     46 UTEST(gout_options, GopherWriter) {
     47   const char* argv[] = {"gout", "-G", "repo"};
     48   GoutOptions* options = gout_options_create(3, argv);
     49   ASSERT_NE(NULL, options);
     50   EXPECT_EQ((int)kRepoWriterTypeGopher, (int)options->writer_type);
     51   gout_options_free(options);
     52 }
     53 
     54 UTEST(gout_options, MutuallyExclusiveLogCache) {
     55   const char* argv[] = {"gout", "-l", "50", "-c", "cache.db", "repo"};
     56   GoutOptions* options = gout_options_create(6, argv);
     57   EXPECT_EQ(NULL, options);
     58 }
     59 
     60 UTEST(gout_options, MutuallyExclusiveCacheLog) {
     61   const char* argv[] = {"gout", "-c", "cache.db", "-l", "50", "repo"};
     62   GoutOptions* options = gout_options_create(6, argv);
     63   EXPECT_EQ(NULL, options);
     64 }
     65 
     66 UTEST(gout_options, MissingRepo) {
     67   const char* argv[] = {"gout", "-l", "50"};
     68   GoutOptions* options = gout_options_create(3, argv);
     69   EXPECT_EQ(NULL, options);
     70 }
     71 
     72 UTEST(gout_options, DuplicateRepo) {
     73   const char* argv[] = {"gout", "repo1", "repo2"};
     74   GoutOptions* options = gout_options_create(3, argv);
     75   EXPECT_EQ(NULL, options);
     76 }
     77 
     78 UTEST(gout_options, InvalidLogLimit) {
     79   const char* argv[] = {"gout", "-l", "not-a-number", "repo"};
     80   GoutOptions* options = gout_options_create(4, argv);
     81   EXPECT_EQ(NULL, options);
     82 }
     83 
     84 UTEST(gout_options, NegativeLogLimit) {
     85   const char* argv[] = {"gout", "-l", "-10", "repo"};
     86   GoutOptions* options = gout_options_create(4, argv);
     87   EXPECT_EQ(NULL, options);
     88 }