diff --git a/.github/workflows/ci-pr-validation.yaml b/.github/workflows/ci-pr-validation.yaml index db0667aa..8abdee58 100644 --- a/.github/workflows/ci-pr-validation.yaml +++ b/.github/workflows/ci-pr-validation.yaml @@ -31,7 +31,7 @@ jobs: unit-tests: name: Run unit tests - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 timeout-minutes: 120 steps: diff --git a/tests/KeyValueSchemaTest.cc b/tests/KeyValueSchemaTest.cc index 02b55ee4..d0375b96 100644 --- a/tests/KeyValueSchemaTest.cc +++ b/tests/KeyValueSchemaTest.cc @@ -25,10 +25,14 @@ using namespace pulsar; static const std::string lookupUrl = "pulsar://localhost:6650"; -class KeyValueSchemaTest : public ::testing::TestWithParam { +// NOTE: Here we use int instead of KeyValueEncodingType because of a bug of GTest with GCC 11, see +// https://github.com/google/googletest/issues/4079 +class KeyValueSchemaTest : public ::testing::TestWithParam { public: void TearDown() override { client.close(); } + KeyValueEncodingType getEncodingType() const { return static_cast(GetParam()); } + void createProducer(const std::string& topic, Producer& producer) { ProducerConfiguration configProducer; configProducer.setSchema(getKeyValueSchema()); @@ -45,7 +49,7 @@ class KeyValueSchemaTest : public ::testing::TestWithParam SchemaInfo getKeyValueSchema() { SchemaInfo keySchema(JSON, "key-json", jsonSchema); SchemaInfo valueSchema(JSON, "value-json", jsonSchema); - return SchemaInfo(keySchema, valueSchema, GetParam()); + return SchemaInfo(keySchema, valueSchema, getEncodingType()); } private: @@ -55,7 +59,7 @@ class KeyValueSchemaTest : public ::testing::TestWithParam }; TEST_P(KeyValueSchemaTest, testKeyValueSchema) { - auto encodingType = GetParam(); + auto encodingType = getEncodingType(); const std::string topicName = "testKeyValueSchema-" + std::string(strEncodingType(encodingType)) + std::to_string(time(nullptr)); @@ -85,5 +89,5 @@ TEST_P(KeyValueSchemaTest, testKeyValueSchema) { ASSERT_EQ(keyValueData.getValueAsString(), valueData); } -INSTANTIATE_TEST_CASE_P(Pulsar, KeyValueSchemaTest, - ::testing::Values(KeyValueEncodingType::INLINE, KeyValueEncodingType::SEPARATED)); +INSTANTIATE_TEST_SUITE_P(Pulsar, KeyValueSchemaTest, + ::testing::Values(KeyValueEncodingType::INLINE, KeyValueEncodingType::SEPARATED));