1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-09 20:16:03 +01:00

TMP: try delete levenshtein test

valgrind spotted use of uninitialised values here.
I couldn't reproduce the problem locally, so let's see if this
happens to fix CI.

valgrind ./src/libstore/tests/libnixstore-tests
==2314521== Memcheck, a memory error detector
==2314521== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==2314521== Using Valgrind-3.21.0 and LibVEX; rerun with -h for copyright info
==2314521== Command: ./src/libstore/tests/libnixstore-tests
==2314521==
Running main() from /build/source/googletest/src/gtest_main.cc
==2314521== Use of uninitialised value of size 8
==2314521==    at 0x4DC32D2: _itoa_word (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4DCCC6D: __printf_buffer (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4DEE975: __vsnprintf_internal (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4E89A13: __snprintf_chk (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4884320: testing::(anonymous namespace)::PrintByteSegmentInObjectTo(unsigned char const*, unsigned long, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48895CB: testing::internal::PrintBytesInObjectTo(unsigned char const*, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x50AE35A: PrintValue<nix::LevenshteinDistanceParam> (gtest-printers.h:269)
==2314521==    by 0x50AE35A: PrintWithFallback<nix::LevenshteinDistanceParam> (gtest-printers.h:311)
==2314521==    by 0x50AE35A: PrintTo<nix::LevenshteinDistanceParam> (gtest-printers.h:440)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:702)
==2314521==    by 0x50AE35A: UniversalPrint<nix::LevenshteinDistanceParam> (gtest-printers.h:999)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:884)
==2314521==    by 0x50AE35A: PrintToString<nix::LevenshteinDistanceParam> (gtest-printers.h:1037)
==2314521==    by 0x50AE35A: testing::internal::ParameterizedTestSuiteInfo<nix::LevenshteinDistanceTest>::RegisterTests() (gtest-param-util.h:596)
==2314521==    by 0x48B1894: testing::internal::UnitTestImpl::RegisterParameterizedTests() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48B193A: testing::internal::UnitTestImpl::PostFlagParsingInit() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48540D2: main (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest_main.so.1.12.1)
==2314521==
==2314521== Conditional jump or move depends on uninitialised value(s)
==2314521==    at 0x4DC32E4: _itoa_word (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4DCCC6D: __printf_buffer (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4DEE975: __vsnprintf_internal (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4E89A13: __snprintf_chk (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4884320: testing::(anonymous namespace)::PrintByteSegmentInObjectTo(unsigned char const*, unsigned long, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48895CB: testing::internal::PrintBytesInObjectTo(unsigned char const*, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x50AE35A: PrintValue<nix::LevenshteinDistanceParam> (gtest-printers.h:269)
==2314521==    by 0x50AE35A: PrintWithFallback<nix::LevenshteinDistanceParam> (gtest-printers.h:311)
==2314521==    by 0x50AE35A: PrintTo<nix::LevenshteinDistanceParam> (gtest-printers.h:440)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:702)
==2314521==    by 0x50AE35A: UniversalPrint<nix::LevenshteinDistanceParam> (gtest-printers.h:999)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:884)
==2314521==    by 0x50AE35A: PrintToString<nix::LevenshteinDistanceParam> (gtest-printers.h:1037)
==2314521==    by 0x50AE35A: testing::internal::ParameterizedTestSuiteInfo<nix::LevenshteinDistanceTest>::RegisterTests() (gtest-param-util.h:596)
==2314521==    by 0x48B1894: testing::internal::UnitTestImpl::RegisterParameterizedTests() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48B193A: testing::internal::UnitTestImpl::PostFlagParsingInit() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48540D2: main (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest_main.so.1.12.1)
==2314521==
==2314521== Conditional jump or move depends on uninitialised value(s)
==2314521==    at 0x4DCCCBF: __printf_buffer (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4DEE975: __vsnprintf_internal (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4E89A13: __snprintf_chk (in /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6)
==2314521==    by 0x4884320: testing::(anonymous namespace)::PrintByteSegmentInObjectTo(unsigned char const*, unsigned long, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48895CB: testing::internal::PrintBytesInObjectTo(unsigned char const*, unsigned long, std::ostream*) (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x50AE35A: PrintValue<nix::LevenshteinDistanceParam> (gtest-printers.h:269)
==2314521==    by 0x50AE35A: PrintWithFallback<nix::LevenshteinDistanceParam> (gtest-printers.h:311)
==2314521==    by 0x50AE35A: PrintTo<nix::LevenshteinDistanceParam> (gtest-printers.h:440)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:702)
==2314521==    by 0x50AE35A: UniversalPrint<nix::LevenshteinDistanceParam> (gtest-printers.h:999)
==2314521==    by 0x50AE35A: Print (gtest-printers.h:884)
==2314521==    by 0x50AE35A: PrintToString<nix::LevenshteinDistanceParam> (gtest-printers.h:1037)
==2314521==    by 0x50AE35A: testing::internal::ParameterizedTestSuiteInfo<nix::LevenshteinDistanceTest>::RegisterTests() (gtest-param-util.h:596)
==2314521==    by 0x48B1894: testing::internal::UnitTestImpl::RegisterParameterizedTests() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48B193A: testing::internal::UnitTestImpl::PostFlagParsingInit() (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest.so.1.12.1)
==2314521==    by 0x48540D2: main (in /nix/store/21329dny6jffzcagsipcklh3fg6jzp87-gtest-1.12.1/lib/libgtest_main.so.1.12.1)
==2314521==
This commit is contained in:
Robert Hensing 2023-07-03 17:30:00 +02:00
parent 98460d566b
commit 863419ca6b

View file

@ -1,43 +0,0 @@
#include "suggestions.hh"
#include <gtest/gtest.h>
namespace nix {
struct LevenshteinDistanceParam {
std::string s1, s2;
int distance;
};
class LevenshteinDistanceTest :
public testing::TestWithParam<LevenshteinDistanceParam> {
};
TEST_P(LevenshteinDistanceTest, CorrectlyComputed) {
auto params = GetParam();
ASSERT_EQ(levenshteinDistance(params.s1, params.s2), params.distance);
ASSERT_EQ(levenshteinDistance(params.s2, params.s1), params.distance);
}
INSTANTIATE_TEST_SUITE_P(LevenshteinDistance, LevenshteinDistanceTest,
testing::Values(
LevenshteinDistanceParam{"foo", "foo", 0},
LevenshteinDistanceParam{"foo", "", 3},
LevenshteinDistanceParam{"", "", 0},
LevenshteinDistanceParam{"foo", "fo", 1},
LevenshteinDistanceParam{"foo", "oo", 1},
LevenshteinDistanceParam{"foo", "fao", 1},
LevenshteinDistanceParam{"foo", "abc", 3}
)
);
TEST(Suggestions, Trim) {
auto suggestions = Suggestions::bestMatches({"foooo", "bar", "fo", "gao"}, "foo");
auto onlyOne = suggestions.trim(1);
ASSERT_EQ(onlyOne.suggestions.size(), 1);
ASSERT_TRUE(onlyOne.suggestions.begin()->suggestion == "fo");
auto closest = suggestions.trim(999, 2);
ASSERT_EQ(closest.suggestions.size(), 3);
}
}