diff options
| author | Vicent Martà <tanoku@gmail.com> | 2011-09-22 10:28:05 -0700 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2011-09-22 10:28:05 -0700 |
| commit | 01ab592b82c4051df2be6066d7dfa59696cd453d (patch) | |
| tree | 934a6951ee3d005395a8632197d7fb1722a216bb /tests | |
| parent | 87a26ad55e3d7a7b4753a9cf70f1481f2c61b2cd (diff) | |
| parent | ad196c6ae669e2d69503eba942402e7215ea7b82 (diff) | |
| download | libgit2-01ab592b82c4051df2be6066d7dfa59696cd453d.tar.gz | |
Merge pull request #421 from nulltoken/ntk/fix/config-get-set-long
config: make git_config_[get|set]_long() able to properly deal with 8 bytes wide values
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/resources/config/config9 | 1 | ||||
| -rw-r--r-- | tests/t00-core.c | 44 | ||||
| -rw-r--r-- | tests/t15-config.c | 20 |
3 files changed, 64 insertions, 1 deletions
diff --git a/tests/resources/config/config9 b/tests/resources/config/config9 index 34fdc07a5..2179b2e6c 100644 --- a/tests/resources/config/config9 +++ b/tests/resources/config/config9 @@ -1,3 +1,4 @@ [core] dummy2 = 42 + verylong = 1 dummy = 1 diff --git a/tests/t00-core.c b/tests/t00-core.c index 5d1a7ac7c..588b3c63f 100644 --- a/tests/t00-core.c +++ b/tests/t00-core.c @@ -555,6 +555,47 @@ BEGIN_TEST(rmdir1, "make sure non-empty dir cannot be deleted recusively") must_pass(git_futils_rmdir_r(empty_tmp_dir, 0)); END_TEST +BEGIN_TEST(strtol0, "parsing out 32 integers from a string") + int i; + + must_pass(git__strtol32(&i, "123", NULL, 10)); + must_be_true(i == 123); + + must_pass(git__strtol32(&i, " +123 ", NULL, 10)); + must_be_true(i == 123); + + must_pass(git__strtol32(&i, " +2147483647 ", NULL, 10)); + must_be_true(i == 2147483647); + + must_pass(git__strtol32(&i, " -2147483648 ", NULL, 10)); + must_be_true(i == -2147483648LL); + + must_fail(git__strtol32(&i, " 2147483657 ", NULL, 10)); + must_fail(git__strtol32(&i, " -2147483657 ", NULL, 10)); +END_TEST + +BEGIN_TEST(strtol1, "parsing out 64 integers from a string") + long long i; + + must_pass(git__strtol64(&i, "123", NULL, 10)); + must_be_true(i == 123); + + must_pass(git__strtol64(&i, " +123 ", NULL, 10)); + must_be_true(i == 123); + + must_pass(git__strtol64(&i, " +2147483647 ", NULL, 10)); + must_be_true(i == 2147483647); + + must_pass(git__strtol64(&i, " -2147483648 ", NULL, 10)); + must_be_true(i == -2147483648LL); + + must_pass(git__strtol64(&i, " 2147483657 ", NULL, 10)); + must_be_true(i == 2147483657LL); + + must_pass(git__strtol64(&i, " -2147483657 ", NULL, 10)); + must_be_true(i == -2147483657LL); +END_TEST + BEGIN_SUITE(core) ADD_TEST(string0); ADD_TEST(string1); @@ -581,4 +622,7 @@ BEGIN_SUITE(core) ADD_TEST(rmdir0); ADD_TEST(rmdir1); + + ADD_TEST(strtol0); + ADD_TEST(strtol1); END_SUITE diff --git a/tests/t15-config.c b/tests/t15-config.c index ac460bc00..b959cc95a 100644 --- a/tests/t15-config.c +++ b/tests/t15-config.c @@ -133,7 +133,7 @@ END_TEST BEGIN_TEST(config5, "test number suffixes") git_config *cfg; - long int i; + long long i; must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config5")); @@ -194,6 +194,7 @@ END_TEST BEGIN_TEST(config9, "replace a value") git_config *cfg; int i; + long long l, expected = +9223372036854775803; /* By freeing the config, we make sure we flush the values */ must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config9")); @@ -209,6 +210,23 @@ BEGIN_TEST(config9, "replace a value") must_pass(git_config_set_int(cfg, "core.dummy", 1)); git_config_free(cfg); + must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config9")); + must_pass(git_config_set_long(cfg, "core.verylong", expected)); + git_config_free(cfg); + + must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config9")); + must_pass(git_config_get_long(cfg, "core.verylong", &l)); + must_be_true(l == expected); + git_config_free(cfg); + + must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config9")); + must_fail(git_config_get_int(cfg, "core.verylong", &i)); + git_config_free(cfg); + + must_pass(git_config_open_ondisk(&cfg, CONFIG_BASE "/config9")); + must_pass(git_config_set_long(cfg, "core.verylong", 1)); + git_config_free(cfg); + END_TEST BEGIN_TEST(config10, "a repo's config overrides the global config") |
