diff options
| author | Jörg Frings-Fürst <debian@jff-webhsoting.net> | 2019-01-12 17:38:42 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhsoting.net> | 2019-01-12 17:38:42 +0100 | 
| commit | 6ada0507368fa5980bbfbe747480b68c632d7c37 (patch) | |
| tree | 7b7f82d9ac64641da59e9948883e1289ad7b7f38 /test | |
| parent | a08fa80b53e2228c96f6f49d0e5040348c57e97f (diff) | |
| parent | 63b80068976fbc5460c284aef0e6560abcf13e68 (diff) | |
Update upstream source from tag 'upstream/0.9.1'
Update to upstream version '0.9.1'
with Debian dir d61ac191808ad347e1c3732d262d9bd3dfe33000
Diffstat (limited to 'test')
| -rw-r--r-- | test/VersionSuite.cpp | 8 | ||||
| -rw-r--r-- | test/test.cpp | 52 | 
2 files changed, 45 insertions, 15 deletions
| diff --git a/test/VersionSuite.cpp b/test/VersionSuite.cpp index fb28c15..c85bbd2 100644 --- a/test/VersionSuite.cpp +++ b/test/VersionSuite.cpp @@ -20,9 +20,6 @@  #include <gtest/gtest.h> -#ifndef _GNU_SOURCE -# define _GNU_SOURCE  // for asprintf -#endif  #include <stdio.h> @@ -31,8 +28,8 @@  TEST(VersionSuite, EnsureVersionDefinesInSync) { -	char * INSIDE_VERSION = NULL; -	const int bytes_printed = asprintf(&INSIDE_VERSION, "%d.%d.%d%s", +	char INSIDE_VERSION[256]; +	const int bytes_printed = sprintf(INSIDE_VERSION, "%d.%d.%d%s",  			URI_VER_MAJOR, URI_VER_MINOR, URI_VER_RELEASE, URI_VER_SUFFIX_ANSI);  	ASSERT_TRUE(bytes_printed != -1); @@ -42,6 +39,5 @@ TEST(VersionSuite, EnsureVersionDefinesInSync) {  		printf("  Tarball version:         <%s>\n", PACKAGE_VERSION);  		printf("  Header defines version:  <%s>\n", INSIDE_VERSION);  	} -	free(INSIDE_VERSION);  	ASSERT_TRUE(equal);  } diff --git a/test/test.cpp b/test/test.cpp index 78fd980..7a68c39 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -242,6 +242,19 @@ TEST(UriSuite, TestIpSixFail) {  		URI_TEST_IP_SIX_FAIL("g:0:0:0:0:0:0");  } +TEST(UriSuite, TestIpSixOverread) { +		UriUriA uri; +		const char * errorPos; + +		// NOTE: This string is designed to not have a terminator +		char uriText[2 + 3 + 2 + 1 + 1]; +		strncpy(uriText, "//[::44.1", sizeof(uriText)); + +		EXPECT_EQ(uriParseSingleUriExA(&uri, uriText, +				uriText + sizeof(uriText), &errorPos), URI_ERROR_SYNTAX); +		EXPECT_EQ(errorPos, uriText + sizeof(uriText)); +} +  TEST(UriSuite, TestUri) {  		UriParserStateA stateA;  		UriParserStateW stateW; @@ -1214,6 +1227,8 @@ namespace {  			return false;  		} +		EXPECT_EQ(charsRequired, wcslen(text)); +  		// Minimum  		wchar_t * buffer = new wchar_t[charsRequired + 1];  		if (uriToStringW(buffer, &uri, charsRequired + 1, NULL) != 0) { @@ -1236,15 +1251,24 @@ namespace {  }  // namespace  TEST(UriSuite, TestToStringCharsRequired) { -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com:80/")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://user:pass@www.example.com/")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/index.html")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/?abc")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/#def")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/?abc#def")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"/test")); -		ASSERT_TRUE(testToStringCharsRequiredHelper(L"test")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.1.1.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://12.1.1.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://123.1.1.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.12.1.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.123.1.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.1.12.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.1.123.1/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.1.1.12/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://1.1.1.123/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com:80/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://user:pass@www.example.com/")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/index.html")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/?abc")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/#def")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"http://www.example.com/?abc#def")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"/test")); +		EXPECT_TRUE(testToStringCharsRequiredHelper(L"test"));  }  namespace { @@ -2041,6 +2065,16 @@ TEST(UriSuite, TestRangeComparisonRemoveBaseUriIssue19) {  								"http://example2/x/y/z");  } +TEST(ErrorPosSuite, TestErrorPosIPvFuture) { +	UriUriA uri; +	const char * errorPos; + +	const char * const uriText = "http://[vA.123456";  // missing "]" +	EXPECT_EQ(uriParseSingleUriA(&uri, uriText, &errorPos), +				URI_ERROR_SYNTAX); +	EXPECT_EQ(errorPos, uriText + strlen(uriText)); +} +  TEST(UriParseSingleSuite, Success) {  	UriUriA uri; | 
