summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVicent Martí <tanoku@gmail.com>2011-09-22 10:28:05 -0700
committerVicent Martí <tanoku@gmail.com>2011-09-22 10:28:05 -0700
commit01ab592b82c4051df2be6066d7dfa59696cd453d (patch)
tree934a6951ee3d005395a8632197d7fb1722a216bb /tests
parent87a26ad55e3d7a7b4753a9cf70f1481f2c61b2cd (diff)
parentad196c6ae669e2d69503eba942402e7215ea7b82 (diff)
downloadlibgit2-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/config91
-rw-r--r--tests/t00-core.c44
-rw-r--r--tests/t15-config.c20
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")