blob: e82a423fba916699554388cbb0a3a40999ab7804 [file]
// Protocol Buffers - Google's data interchange format
// Copyright 2026 Google LLC. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// A tiny conformance suite used to exercise the gtest conformance framework end
// to end against the real C++ testee. Some of these tests fail on purpose; see
// the sample_failure_list_*.txt files and test_environment_integration_test.cc.
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "conformance/binary_wireformat.h"
#include "conformance/matchers.h"
#include "conformance/test_fixture.h"
#include "conformance/testee.h"
#include "google/protobuf/test_messages_proto3.pb.h"
namespace google {
namespace protobuf {
namespace conformance {
namespace {
using ::protobuf_test_messages::proto3::TestAllTypesProto3;
using SampleConformanceTest = ConformanceTest;
TEST_F(SampleConformanceTest, SamplePass) {
EXPECT_THAT(
Testee()
.ParseBinary(TestAllTypesProto3::descriptor(), VarintField(1, 99))
.SerializeBinary(),
Yields(WhenParsed(EqualsTextProto(R"pb(optional_int32: 99)pb"))));
}
// Valid input is expected to parse, so this always fails against a conforming
// testee.
TEST_F(SampleConformanceTest, SampleDeliberateFailure) {
EXPECT_THAT(
Testee()
.ParseBinary(TestAllTypesProto3::descriptor(), VarintField(1, 99))
.SerializeBinary(),
Yields(IsParseError()));
}
// Same as above, but only P1.
TEST_F(SampleConformanceTest, SampleP1Failure) {
EXPECT_THAT(
Testee(kP1)
.ParseBinary(TestAllTypesProto3::descriptor(), VarintField(1, 99))
.SerializeBinary(),
Yields(IsParseError()));
}
// Only runs with gtest's also_run_disabled_tests flag. Its presence must not
// make a normal run count as partial (see IsPartialRun() in
// test_environment.cc).
TEST_F(SampleConformanceTest, DISABLED_SampleDisabled) {
EXPECT_THAT(
Testee()
.ParseBinary(TestAllTypesProto3::descriptor(), VarintField(1, 99))
.SerializeBinary(),
Yields(WhenParsed(EqualsTextProto(R"pb(optional_int32: 99)pb"))));
}
} // namespace
} // namespace conformance
} // namespace protobuf
} // namespace google