[Autofill[] AddressValidatorTest.SubKeysNotLoaded (CRASHED) |
||
Issue descriptionninja -C out/Default libaddressinput_unittests cd .. ./src/out/Default libaddressinput_unittests --gtest_filter=*SubKeys* One test is crashing: [ RUN ] AddressValidatorTest.SubKeysNotLoaded [61560:775:0620/104255.506324:101852680527902:FATAL:thread_task_runner_handle.cc(28)] Check failed: current. 0 libbase.dylib 0x000000010a1acfbe base::debug::StackTrace::StackTrace(unsigned long) + 174 1 libbase.dylib 0x000000010a1ad05d base::debug::StackTrace::StackTrace(unsigned long) + 29 2 libbase.dylib 0x000000010a1ab4ec base::debug::StackTrace::StackTrace() + 28 3 libbase.dylib 0x000000010a24ac3f logging::LogMessage::~LogMessage() + 479 4 libbase.dylib 0x000000010a2485b5 logging::LogMessage::~LogMessage() + 21 5 libbase.dylib 0x000000010a4b397d base::ThreadTaskRunnerHandle::Get() + 221 6 libaddressinput_unittests 0x000000010983e076 autofill::AddressValidator::RulesLoaded(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) + 230 7 libaddressinput_unittests 0x0000000109840c5f i18n::addressinput::(anonymous namespace)::CallbackImpl<autofill::AddressValidator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int>::operator()(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) const + 143 8 libaddressinput_unittests 0x00000001098870e3 i18n::addressinput::(anonymous namespace)::Helper::OnRetrieved(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 21619 9 libaddressinput_unittests 0x00000001098873d3 i18n::addressinput::(anonymous namespace)::CallbackImpl<i18n::addressinput::(anonymous namespace)::Helper, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>::operator()(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const + 147 10 libaddressinput_unittests 0x00000001098a426e i18n::addressinput::(anonymous namespace)::Helper::OnFreshDataReady(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 222 11 libaddressinput_unittests 0x00000001098a49d3 i18n::addressinput::(anonymous namespace)::CallbackImpl<i18n::addressinput::(anonymous namespace)::Helper, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::operator()(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const + 147 12 libaddressinput_unittests 0x00000001097a6fd9 i18n::addressinput::TestdataSource::Get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> const&) const + 1801 13 libaddressinput_unittests 0x00000001098a474b i18n::addressinput::(anonymous namespace)::Helper::OnValidatedDataReady(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 491 14 libaddressinput_unittests 0x00000001098a49d3 i18n::addressinput::(anonymous namespace)::CallbackImpl<i18n::addressinput::(anonymous namespace)::Helper, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::operator()(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const + 147 15 libaddressinput_unittests 0x00000001098a7a45 i18n::addressinput::(anonymous namespace)::Helper::OnWrappedDataReady(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 357 16 libaddressinput_unittests 0x00000001098a7cb3 i18n::addressinput::(anonymous namespace)::CallbackImpl<i18n::addressinput::(anonymous namespace)::Helper, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::operator()(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const + 147 17 libaddressinput_unittests 0x0000000109875c5f i18n::addressinput::NullStorage::Get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> const&) const + 63 18 libaddressinput_unittests 0x00000001098a7868 i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> const&, i18n::addressinput::Storage const&) + 168 19 libaddressinput_unittests 0x00000001098a76ed i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> const&, i18n::addressinput::Storage const&) + 45 20 libaddressinput_unittests 0x00000001098a7643 i18n::addressinput::ValidatingStorage::Get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> const&) const + 99 21 libaddressinput_unittests 0x00000001098a410b i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> const&, i18n::addressinput::Source const&, i18n::addressinput::ValidatingStorage*) + 539 22 libaddressinput_unittests 0x00000001098a3d65 i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> const&, i18n::addressinput::Source const&, i18n::addressinput::ValidatingStorage*) + 53 23 libaddressinput_unittests 0x00000001098a3c94 i18n::addressinput::Retriever::Retrieve(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> const&) const + 116 24 libaddressinput_unittests 0x0000000109881bcc i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int> const&, i18n::addressinput::Retriever const&, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, i18n::addressinput::IndexMap*, std::__1::vector<i18n::addressinput::Rule const*, std::__1::allocator<i18n::addressinput::Rule const*> >*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, i18n::addressinput::Rule const*, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, i18n::addressinput::Rule const*> > >*) + 972 25 libaddressinput_unittests 0x0000000109880c14 i18n::addressinput::(anonymous namespace)::Helper::Helper(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int> const&, i18n::addressinput::Retriever const&, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, i18n::addressinput::IndexMap*, std::__1::vector<i18n::addressinput::Rule const*, std::__1::allocator<i18n::addressinput::Rule const*> >*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, i18n::addressinput::Rule const*, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, i18n::addressinput::Rule const*> > >*) + 116 26 libaddressinput_unittests 0x0000000109880514 i18n::addressinput::PreloadSupplier::LoadRules(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, i18n::addressinput::Callback<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int> const&) + 388 27 libaddressinput_unittests 0x000000010983e990 autofill::AddressValidator::LoadRules(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 144 28 libaddressinput_unittests 0x00000001095da31a autofill::AddressValidatorTest_SubKeysNotLoaded_Test::TestBody() + 282 29 libaddressinput_unittests 0x000000010982c05e void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 126 30 libaddressinput_unittests 0x00000001098056a2 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 114 31 libaddressinput_unittests 0x00000001098055d6 testing::Test::Run() + 198 32 libaddressinput_unittests 0x000000010980675d testing::TestInfo::Run() + 221 33 libaddressinput_unittests 0x0000000109807abc testing::TestCase::Run() + 236 34 libaddressinput_unittests 0x0000000109814fca testing::internal::UnitTestImpl::RunAllTests() + 922 35 libaddressinput_unittests 0x000000010983033e bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 126 36 libaddressinput_unittests 0x0000000109814bb2 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 114 37 libaddressinput_unittests 0x0000000109814a8e testing::UnitTest::Run() + 366 38 libaddressinput_unittests 0x00000001099ce351 RUN_ALL_TESTS() + 17 39 libaddressinput_unittests 0x00000001099cd6fe base::TestSuite::Run() + 334 40 libaddressinput_unittests 0x00000001098abf7d int base::internal::FunctorTraits<int (base::TestSuite::*)(), void>::Invoke<base::TestSuite*>(int (base::TestSuite::*)(), base::TestSuite*&&) + 125 41 libaddressinput_unittests 0x00000001098abec4 int base::internal::InvokeHelper<false, int>::MakeItSo<int (base::TestSuite::* const&)(), base::TestSuite*>(int (base::TestSuite::* const&&&)(), base::TestSuite*&&) + 68 42 libaddressinput_unittests 0x00000001098abe53 int base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<base::TestSuite> >, int ()>::RunImpl<int (base::TestSuite::* const&)(), std::__1::tuple<base::internal::UnretainedWrapper<base::TestSuite> > const&, 0ul>(int (base::TestSuite::* const&&&)(), std::__1::tuple<base::internal::UnretainedWrapper<base::TestSuite> > const&&&, base::IndexSequence<0ul>) + 99 43 libaddressinput_unittests 0x00000001098abd5c base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<base::TestSuite> >, int ()>::Run(base::internal::BindStateBase*) + 44 44 libaddressinput_unittests 0x0000000109a1186d base::Callback<int (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>::Run() const + 61 45 libaddressinput_unittests 0x0000000109a0edf7 base::(anonymous namespace)::LaunchUnitTestsInternal(base::Callback<int (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, int, int, bool, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 375 46 libaddressinput_unittests 0x0000000109a0ec42 base::LaunchUnitTests(int, char**, base::Callback<int (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 130 47 libaddressinput_unittests 0x00000001098abb23 main + 163 48 libdyld.dylib 0x000000010e2b1235 start + 1 [61559:6147:0620/104255.575381:101852749581159:ERROR:kill_posix.cc(84)] Unable to terminate process group 61560: No such process
,
Jun 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1ccce34079720f94e410b5409e601b9d30ebe09b commit 1ccce34079720f94e410b5409e601b9d30ebe09b Author: parastoog <parastoog@google.com> Date: Thu Jun 29 21:18:56 2017 Problem: AddressValidatorTest.SubKeysNotLoaded would crash, because AddressValidator would not handle the synchronous cases. The DCHECK in ThreadTaskRunnerHandle::Get() causes the crash, and it should. Solution: Since the process of loading rules should always be asynchronous, there should be no check in the RulesLoaded, the later DCHECK would serve the purpose. Therefore, change the unit-test country code from "ZZ" to "OZ", because the data for ZZ can't be parsed, and the success = 0, and since the tests are synchronous, there would be a crash. For "OZ", there is no data, therefore success = 1, but there would be no rules loaded for that, which serves the purpose. ASSERT_EQ(success, status == AddressValidator::SUCCESS) is changed, because for the case of AddressValidator::RULES_UNAVAILABLE, success == true, but status != AddressValidator::SUCCESS. Also, since the AddressValidatorTest loads rules synchronously, success should always be true, or there will be a crash. Add an extra check in this unittest, to make sure that the rules are not loaded. Rename SubKeysNotLoaded to SubKeysNotExists, to be clear that no data exists for this country code. BUG= 735036 Review-Url: https://codereview.chromium.org/2950353002 Cr-Commit-Position: refs/heads/master@{#483488} [modify] https://crrev.com/1ccce34079720f94e410b5409e601b9d30ebe09b/third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc
,
Jun 30 2017
|
||
►
Sign in to add a comment |
||
Comment 1 by parastoog@chromium.org
, Jun 22 2017