diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 17 | ||||
-rw-r--r-- | dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch | 91 | ||||
-rw-r--r-- | fix-timestamp-in-record_maps-in-test.patch | 26 |
4 files changed, 136 insertions, 4 deletions
@@ -1,7 +1,7 @@ pkgbase = ddnet pkgdesc = A Teeworlds modification with a unique cooperative gameplay. pkgver = 15.8.1 - pkgrel = 6 + pkgrel = 7 url = https://ddnet.tw arch = x86_64 license = custom:BSD @@ -28,9 +28,13 @@ pkgbase = ddnet source = ddnet-server.service source = ddnet-sysusers.conf source = ddnet-tmpfiles.conf + source = dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch + source = fix-timestamp-in-record_maps-in-test.patch sha256sums = bc354c2db9b0dee094ac3ce1ca95e5399d8282c91cfb878ebd3060345aa0c76d sha256sums = 9377a9d7c87abae166c8fa98cd79a61c74482f80f80bc930ae043349e9a84965 sha256sums = 70034f237270b38bf312238a26cfd322e212ca5714bfea4ae91e80c639ce8738 sha256sums = 043452f4de3c86d903973009bb3e59b3492a6669b86d0b1410e59a1476a87369 + sha256sums = 5d90ac84ee91556f676ab04006079fb0ad5399b4adde90cfd1b53374da62782a + sha256sums = 60cceac4c1caaec8899ffa691860690a2f2f95897c4525e7c51450849f21f62c pkgname = ddnet @@ -3,7 +3,7 @@ pkgname=ddnet pkgver=15.8.1 -pkgrel=6 +pkgrel=7 pkgdesc="A Teeworlds modification with a unique cooperative gameplay." arch=('x86_64') url="https://ddnet.tw" @@ -15,11 +15,22 @@ optdepends=('ddnet-skins: A collection with more than 500 custom tee skins.' 'ddnet-maps-git: All the maps used on the official DDNet Servers.') backup=('usr/share/ddnet/data/autoexec_server.cfg') source=("https://ddnet.tw/downloads/DDNet-$pkgver.tar.xz" - "ddnet-server.service" "ddnet-sysusers.conf" "ddnet-tmpfiles.conf") + "ddnet-server.service" "ddnet-sysusers.conf" "ddnet-tmpfiles.conf" + "dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch" + "fix-timestamp-in-record_maps-in-test.patch") sha256sums=('bc354c2db9b0dee094ac3ce1ca95e5399d8282c91cfb878ebd3060345aa0c76d' '9377a9d7c87abae166c8fa98cd79a61c74482f80f80bc930ae043349e9a84965' '70034f237270b38bf312238a26cfd322e212ca5714bfea4ae91e80c639ce8738' - '043452f4de3c86d903973009bb3e59b3492a6669b86d0b1410e59a1476a87369') + '043452f4de3c86d903973009bb3e59b3492a6669b86d0b1410e59a1476a87369' + '5d90ac84ee91556f676ab04006079fb0ad5399b4adde90cfd1b53374da62782a' + '60cceac4c1caaec8899ffa691860690a2f2f95897c4525e7c51450849f21f62c') + +prepare() { + cd DDNet-$pkgver + # https://github.com/ddnet/ddnet/issues/4631 + patch -p1 -i ../dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch + patch -p1 -i ../fix-timestamp-in-record_maps-in-test.patch +} build() { mkdir -p build diff --git a/dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch b/dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch new file mode 100644 index 000000000000..5913d1db4a8f --- /dev/null +++ b/dont-expect-moments-ago-string-in-tests-use-regex-matcher.patch @@ -0,0 +1,91 @@ +From c76f0f58997eac49a5adf2069ab0a3ac3981180c Mon Sep 17 00:00:00 2001 +From: def <dennis@felsin9.de> +Date: Sat, 25 Dec 2021 02:21:14 +0100 +Subject: [PATCH] Don't expect "moments ago" string in tests, use regex matcher + instead + +--- + CMakeLists.txt | 6 +++--- + src/test/score.cpp | 25 ++++++++++++++++++++++--- + 2 files changed, 25 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fccbf0c838..574018350c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -656,7 +656,7 @@ if(NOT(GTEST_FOUND) AND DOWNLOAD_GTEST) + ) + + if(MSVC) +- foreach(target gtest) ++ foreach(target gtest gmock) + # `/w` disables all warnings. This is needed because `gtest` enables + # `/WX` (equivalent of `-Werror`) for some reason, breaking builds + # when MSVS adds new warnings. +@@ -664,10 +664,10 @@ if(NOT(GTEST_FOUND) AND DOWNLOAD_GTEST) + endforeach() + endif() + +- set(GTEST_LIBRARIES gtest) ++ set(GTEST_LIBRARIES gtest gmock) + set(GTEST_INCLUDE_DIRS) + if(CMAKE_VERSION VERSION_LESS 2.8.11) +- set(GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR}/include") ++ set(GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR}/include" "${gmock_SOURCE_DIR}/include") + endif() + endif() + endif() +diff --git a/src/test/score.cpp b/src/test/score.cpp +index f99367875e..f7f551a09e 100644 +--- a/src/test/score.cpp ++++ b/src/test/score.cpp +@@ -1,3 +1,4 @@ ++#include <gmock/gmock.h> + #include <gtest/gtest.h> + + #include <base/detect.h> +@@ -255,7 +256,13 @@ TEST_P(MapInfo, ExactNoFinish) + { + str_copy(m_PlayerRequest.m_aName, "Kobra 3", sizeof(m_PlayerRequest.m_aName)); + ASSERT_FALSE(CScoreWorker::MapInfo(m_pConn, &m_PlayerRequest, m_aError, sizeof(m_aError))) << m_aError; +- ExpectLines(pPlayerResult, {"\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released moments ago, 0 finishes by 0 tees"}); ++ ++ EXPECT_EQ(pPlayerResult->m_MessageKind, CScorePlayerResult::DIRECT); ++ EXPECT_THAT(pPlayerResult->m_Data.m_aaMessages[0], testing::MatchesRegex("\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released .* ago, 0 finishes by 0 tees")); ++ for(int i = 1; i < CScorePlayerResult::MAX_MESSAGES; i++) ++ { ++ EXPECT_STREQ(pPlayerResult->m_Data.m_aaMessages[i], ""); ++ } + } + + TEST_P(MapInfo, ExactFinish) +@@ -263,7 +270,13 @@ TEST_P(MapInfo, ExactFinish) + InsertRank(); + str_copy(m_PlayerRequest.m_aName, "Kobra 3", sizeof(m_PlayerRequest.m_aName)); + ASSERT_FALSE(CScoreWorker::MapInfo(m_pConn, &m_PlayerRequest, m_aError, sizeof(m_aError))) << m_aError; +- ExpectLines(pPlayerResult, {"\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released moments ago, 1 finish by 1 tee in 01:40 median"}); ++ ++ EXPECT_EQ(pPlayerResult->m_MessageKind, CScorePlayerResult::DIRECT); ++ EXPECT_THAT(pPlayerResult->m_Data.m_aaMessages[0], testing::MatchesRegex("\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released .* ago, 1 finish by 1 tee in 01:40 median")); ++ for(int i = 1; i < CScorePlayerResult::MAX_MESSAGES; i++) ++ { ++ EXPECT_STREQ(pPlayerResult->m_Data.m_aaMessages[i], ""); ++ } + } + + TEST_P(MapInfo, Fuzzy) +@@ -271,7 +284,13 @@ TEST_P(MapInfo, Fuzzy) + InsertRank(); + str_copy(m_PlayerRequest.m_aName, "k3", sizeof(m_PlayerRequest.m_aName)); + ASSERT_FALSE(CScoreWorker::MapInfo(m_pConn, &m_PlayerRequest, m_aError, sizeof(m_aError))) << m_aError; +- ExpectLines(pPlayerResult, {"\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released moments ago, 1 finish by 1 tee in 01:40 median"}); ++ ++ EXPECT_EQ(pPlayerResult->m_MessageKind, CScorePlayerResult::DIRECT); ++ EXPECT_THAT(pPlayerResult->m_Data.m_aaMessages[0], testing::MatchesRegex("\"Kobra 3\" by Zerodin on Novice, ★★★★★, 5 points, released .* ago, 1 finish by 1 tee in 01:40 median")); ++ for(int i = 1; i < CScorePlayerResult::MAX_MESSAGES; i++) ++ { ++ EXPECT_STREQ(pPlayerResult->m_Data.m_aaMessages[i], ""); ++ } + } + + TEST_P(MapInfo, DoesntExit) diff --git a/fix-timestamp-in-record_maps-in-test.patch b/fix-timestamp-in-record_maps-in-test.patch new file mode 100644 index 000000000000..e5f8ec98be86 --- /dev/null +++ b/fix-timestamp-in-record_maps-in-test.patch @@ -0,0 +1,26 @@ +From f346e445bd282567cda4d22180cb2024c8add03a Mon Sep 17 00:00:00 2001 +From: Dennis Felsing <dennis@felsin9.de> +Date: Mon, 24 Jan 2022 20:58:14 -0300 +Subject: [PATCH] Fix timestamp in record_maps in test (fixes #4631) + +--- + src/test/score.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/test/score.cpp b/src/test/score.cpp +index f7f551a09e..efe102ad6c 100644 +--- a/src/test/score.cpp ++++ b/src/test/score.cpp +@@ -81,9 +81,10 @@ struct Score : public testing::TestWithParam<IDbConnection *> + char aBuf[512]; + str_format(aBuf, sizeof(aBuf), + "%s into %s_maps(Map, Server, Mapper, Points, Stars, Timestamp) " +- "VALUES (\"Kobra 3\", \"Novice\", \"Zerodin\", 5, 5, \"%s\")", +- m_pConn->InsertIgnore(), m_pConn->GetPrefix(), aTimestamp); ++ "VALUES (\"Kobra 3\", \"Novice\", \"Zerodin\", 5, 5, %s)", ++ m_pConn->InsertIgnore(), m_pConn->GetPrefix(), m_pConn->InsertTimestampAsUtc()); + ASSERT_FALSE(m_pConn->PrepareStatement(aBuf, m_aError, sizeof(m_aError))) << m_aError; ++ m_pConn->BindString(1, aTimestamp); + int NumInserted = 0; + ASSERT_FALSE(m_pConn->ExecuteUpdate(&NumInserted, m_aError, sizeof(m_aError))) << m_aError; + ASSERT_EQ(NumInserted, 1); |