Skip to content

Commit 7f785b5

Browse files
punyalalitb
andauthored
[TEST] Add missing tests to Bazel build (#3045)
* Fix overflow in timeout logic Also use steady clock consistently. Prior to this change, the test would fail under ASAN: bazel test --config=asan --test_output=errors //sdk/test/metrics:meter_provider_sdk_test INFO: Analyzed target //sdk/test/metrics:meter_provider_sdk_test (0 packages loaded, 0 targets configured). FAIL: //sdk/test/metrics:meter_provider_sdk_test (see /private/var/tmp/_bazel_punya/e3bd968ba61238cdeb1a5537fc3dbf7d/execroot/_main/bazel-out/darwin_arm64-fastbuild-asan/testlogs/sdk/test/metrics/meter_provider_sdk_test/test.log) INFO: From Testing //sdk/test/metrics:meter_provider_sdk_test: ==================== Test output for //sdk/test/metrics:meter_provider_sdk_test: Running main() from gmock_main.cc [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from MeterProvider [ RUN ] MeterProvider.GetMeter [Warning] File: sdk/src/metrics/meter_provider.cc:65 [MeterProvider::GetMeter] Library name is empty. [Warning] File: sdk/src/metrics/meter_provider.cc:65 [MeterProvider::GetMeter] Library name is empty. /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/duration.h:102:59: runtime error: signed integer overflow: 9221646818050376183 * 1000 cannot be represented in type '_Ct' (aka 'long long') SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/duration.h:102:59 in ================================================================================ INFO: Found 1 test target... Target //sdk/test/metrics:meter_provider_sdk_test up-to-date: bazel-bin/sdk/test/metrics/meter_provider_sdk_test INFO: Elapsed time: 2.251s, Critical Path: 2.13s INFO: 5 processes: 5 darwin-sandbox. INFO: Build completed, 1 test FAILED, 5 total actions //sdk/test/metrics:meter_provider_sdk_test FAILED in 0.6s /private/var/tmp/_bazel_punya/e3bd968ba61238cdeb1a5537fc3dbf7d/execroot/_main/bazel-out/darwin_arm64-fastbuild-asan/testlogs/sdk/test/metrics/meter_provider_sdk_test/test.log Executed 1 out of 1 test: 1 fails locally. Fix overflow in periodic_exporting_metric_reader * Add missing tests to Bazel build by globbing test files Previously, we were missing * instrument_metadata_validator_test * observable_registry_test * cardinality_limit_test * periodic_exporting_metric_reader_test And there were no checks in place to prevent things from getting worse. Remove unnecessary exception checks in attributes_hashmap_test, which simplifies the build and CI script. Resolve symbol collision using anonymous namespaces. --------- Co-authored-by: Lalit Kumar Bhasin <[email protected]>
1 parent f02d70b commit 7f785b5

File tree

6 files changed

+14
-310
lines changed

6 files changed

+14
-310
lines changed

ci/do_ci.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,8 @@ elif [[ "$1" == "bazel.noexcept" ]]; then
484484
# there are some exceptions and error handling code from the Prometheus Client
485485
# as well as Opentracing shim (due to some third party code in its Opentracing dependency)
486486
# that make this test always fail. Ignore these packages in the noexcept test here.
487-
bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//sdk/test/metrics:attributes_hashmap_test -//opentracing-shim/...
488-
bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//sdk/test/metrics:attributes_hashmap_test -//opentracing-shim/...
487+
bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/...
488+
bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/...
489489
exit 0
490490
elif [[ "$1" == "bazel.nortti" ]]; then
491491
# there are some exceptions and error handling code from the Prometheus Client

sdk/test/metrics/BUILD

Lines changed: 2 additions & 301 deletions
Original file line numberDiff line numberDiff line change
@@ -19,307 +19,8 @@ cc_library(
1919
)
2020

2121
cc_test(
22-
name = "meter_test",
23-
srcs = [
24-
"meter_test.cc",
25-
],
26-
tags = [
27-
"metrics",
28-
"test",
29-
],
30-
deps = [
31-
"metrics_common_test_utils",
32-
"@com_google_googletest//:gtest_main",
33-
],
34-
)
35-
36-
cc_test(
37-
name = "meter_provider_sdk_test",
38-
srcs = [
39-
"meter_provider_sdk_test.cc",
40-
],
41-
tags = [
42-
"metrics",
43-
"test",
44-
],
45-
deps = [
46-
"metrics_common_test_utils",
47-
"//sdk/src/resource",
48-
"@com_google_googletest//:gtest_main",
49-
],
50-
)
51-
52-
cc_test(
53-
name = "metric_reader_test",
54-
srcs = [
55-
"metric_reader_test.cc",
56-
],
57-
tags = [
58-
"metrics",
59-
"test",
60-
],
61-
deps = [
62-
"metrics_common_test_utils",
63-
"//sdk/src/resource",
64-
"@com_google_googletest//:gtest_main",
65-
],
66-
)
67-
68-
cc_test(
69-
name = "histogram_test",
70-
srcs = [
71-
"histogram_test.cc",
72-
],
73-
tags = [
74-
"metrics",
75-
"test",
76-
],
77-
deps = [
78-
"metrics_common_test_utils",
79-
"//sdk/src/resource",
80-
"@com_google_googletest//:gtest_main",
81-
],
82-
)
83-
84-
cc_test(
85-
name = "view_registry_test",
86-
srcs = [
87-
"view_registry_test.cc",
88-
],
89-
tags = [
90-
"metrics",
91-
"test",
92-
],
93-
deps = [
94-
"metrics_common_test_utils",
95-
"//sdk/src/resource",
96-
"@com_google_googletest//:gtest_main",
97-
],
98-
)
99-
100-
cc_test(
101-
name = "aggregation_test",
102-
srcs = [
103-
"aggregation_test.cc",
104-
],
105-
tags = [
106-
"metrics",
107-
"test",
108-
],
109-
deps = [
110-
"metrics_common_test_utils",
111-
"//sdk/src/resource",
112-
"@com_google_googletest//:gtest_main",
113-
],
114-
)
115-
116-
cc_test(
117-
name = "sync_metric_storage_counter_test",
118-
srcs = [
119-
"sync_metric_storage_counter_test.cc",
120-
],
121-
tags = [
122-
"metrics",
123-
"test",
124-
],
125-
deps = [
126-
"metrics_common_test_utils",
127-
"//sdk/src/resource",
128-
"@com_google_googletest//:gtest_main",
129-
],
130-
)
131-
132-
cc_test(
133-
name = "sync_metric_storage_up_down_counter_test",
134-
srcs = [
135-
"sync_metric_storage_up_down_counter_test.cc",
136-
],
137-
tags = [
138-
"metrics",
139-
"test",
140-
],
141-
deps = [
142-
"metrics_common_test_utils",
143-
"//sdk/src/resource",
144-
"@com_google_googletest//:gtest_main",
145-
],
146-
)
147-
148-
cc_test(
149-
name = "sync_metric_storage_histogram_test",
150-
srcs = [
151-
"sync_metric_storage_histogram_test.cc",
152-
],
153-
tags = [
154-
"metrics",
155-
"test",
156-
],
157-
deps = [
158-
"metrics_common_test_utils",
159-
"//sdk/src/resource",
160-
"@com_google_googletest//:gtest_main",
161-
],
162-
)
163-
164-
cc_test(
165-
name = "sync_instruments_test",
166-
srcs = [
167-
"sync_instruments_test.cc",
168-
],
169-
tags = [
170-
"metrics",
171-
"test",
172-
],
173-
deps = [
174-
"metrics_common_test_utils",
175-
"//sdk/src/resource",
176-
"@com_google_googletest//:gtest_main",
177-
],
178-
)
179-
180-
cc_test(
181-
name = "async_instruments_test",
182-
srcs = [
183-
"async_instruments_test.cc",
184-
],
185-
tags = [
186-
"metrics",
187-
"test",
188-
],
189-
deps = [
190-
"metrics_common_test_utils",
191-
"@com_google_googletest//:gtest_main",
192-
],
193-
)
194-
195-
cc_test(
196-
name = "async_metric_storage_test",
197-
srcs = [
198-
"async_metric_storage_test.cc",
199-
],
200-
tags = [
201-
"metrics",
202-
"test",
203-
],
204-
deps = [
205-
"metrics_common_test_utils",
206-
"//sdk/src/resource",
207-
"@com_google_googletest//:gtest_main",
208-
],
209-
)
210-
211-
cc_test(
212-
name = "observer_result_test",
213-
srcs = [
214-
"observer_result_test.cc",
215-
],
216-
tags = [
217-
"metrics",
218-
"test",
219-
],
220-
deps = [
221-
"metrics_common_test_utils",
222-
"//sdk/src/resource",
223-
"@com_google_googletest//:gtest_main",
224-
],
225-
)
226-
227-
cc_test(
228-
name = "multi_metric_storage_test",
229-
srcs = [
230-
"multi_metric_storage_test.cc",
231-
],
232-
tags = [
233-
"metrics",
234-
"test",
235-
],
236-
deps = [
237-
"metrics_common_test_utils",
238-
"//sdk/src/resource",
239-
"@com_google_googletest//:gtest_main",
240-
],
241-
)
242-
243-
cc_test(
244-
name = "attributes_processor_test",
245-
srcs = [
246-
"attributes_processor_test.cc",
247-
],
248-
tags = [
249-
"metrics",
250-
"test",
251-
],
252-
deps = [
253-
"metrics_common_test_utils",
254-
"@com_google_googletest//:gtest_main",
255-
],
256-
)
257-
258-
cc_test(
259-
name = "attributes_hashmap_test",
260-
srcs = [
261-
"attributes_hashmap_test.cc",
262-
],
263-
tags = [
264-
"metrics",
265-
"test",
266-
],
267-
deps = [
268-
"metrics_common_test_utils",
269-
"@com_google_googletest//:gtest_main",
270-
],
271-
)
272-
273-
cc_test(
274-
name = "circular_buffer_counter_test",
275-
srcs = [
276-
"circular_buffer_counter_test.cc",
277-
],
278-
tags = [
279-
"metrics",
280-
"test",
281-
],
282-
deps = [
283-
"//sdk/src/metrics",
284-
"@com_google_googletest//:gtest_main",
285-
],
286-
)
287-
288-
cc_test(
289-
name = "base2_exponential_histogram_indexer_test",
290-
srcs = [
291-
"base2_exponential_histogram_indexer_test.cc",
292-
],
293-
tags = [
294-
"metrics",
295-
"test",
296-
],
297-
deps = [
298-
"metrics_common_test_utils",
299-
"@com_google_googletest//:gtest_main",
300-
],
301-
)
302-
303-
cc_test(
304-
name = "histogram_aggregation_test",
305-
srcs = [
306-
"histogram_aggregation_test.cc",
307-
],
308-
tags = [
309-
"metrics",
310-
"test",
311-
],
312-
deps = [
313-
"metrics_common_test_utils",
314-
"@com_google_googletest//:gtest_main",
315-
],
316-
)
317-
318-
cc_test(
319-
name = "sum_aggregation_test",
320-
srcs = [
321-
"sum_aggregation_test.cc",
322-
],
22+
name = "all_tests",
23+
srcs = glob(["*_test.cc"]),
32324
tags = [
32425
"metrics",
32526
"test",

sdk/test/metrics/async_instruments_test.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ using namespace opentelemetry::sdk::metrics;
1212

1313
using M = std::map<std::string, std::string>;
1414

15+
namespace
16+
{
1517
// NOLINTNEXTLINE
1618
void asyc_generate_measurements(opentelemetry::metrics::ObserverResult /* observer */,
1719
void * /* state */)
1820
{}
21+
} // namespace
1922

2023
TEST(AsyncInstruments, ObservableInstrument)
2124
{

sdk/test/metrics/attributes_hashmap_test.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ TEST(AttributesHashMap, BasicTests)
2626
std::unique_ptr<Aggregation> aggregation1(
2727
new DropAggregation()); // = std::unique_ptr<Aggregation>(new DropAggregation);
2828
hash_map.Set(m1, std::move(aggregation1), hash);
29-
EXPECT_NO_THROW(hash_map.Get(hash)->Aggregate(static_cast<int64_t>(1)));
29+
hash_map.Get(hash)->Aggregate(static_cast<int64_t>(1));
3030
EXPECT_EQ(hash_map.Size(), 1);
3131
EXPECT_EQ(hash_map.Has(hash), true);
3232

3333
// Set same key again
3434
auto aggregation2 = std::unique_ptr<Aggregation>(new DropAggregation());
3535
hash_map.Set(m1, std::move(aggregation2), hash);
36-
EXPECT_NO_THROW(hash_map.Get(hash)->Aggregate(static_cast<int64_t>(1)));
36+
hash_map.Get(hash)->Aggregate(static_cast<int64_t>(1));
3737
EXPECT_EQ(hash_map.Size(), 1);
3838
EXPECT_EQ(hash_map.Has(hash), true);
3939

@@ -44,7 +44,7 @@ TEST(AttributesHashMap, BasicTests)
4444
hash_map.Set(m3, std::move(aggregation3), hash3);
4545
EXPECT_EQ(hash_map.Has(hash), true);
4646
EXPECT_EQ(hash_map.Has(hash3), true);
47-
EXPECT_NO_THROW(hash_map.Get(hash3)->Aggregate(static_cast<int64_t>(1)));
47+
hash_map.Get(hash3)->Aggregate(static_cast<int64_t>(1));
4848
EXPECT_EQ(hash_map.Size(), 2);
4949

5050
// GetOrSetDefault
@@ -54,8 +54,8 @@ TEST(AttributesHashMap, BasicTests)
5454
};
5555
MetricAttributes m4 = {{"k1", "v1"}, {"k2", "v2"}, {"k3", "v3"}};
5656
auto hash4 = opentelemetry::sdk::common::GetHashForAttributeMap(m4);
57-
EXPECT_NO_THROW(hash_map.GetOrSetDefault(m4, create_default_aggregation, hash4)
58-
->Aggregate(static_cast<int64_t>(1)));
57+
hash_map.GetOrSetDefault(m4, create_default_aggregation, hash4)
58+
->Aggregate(static_cast<int64_t>(1));
5959
EXPECT_EQ(hash_map.Size(), 3);
6060

6161
// Set attributes with different order - shouldn't create a new entry.

sdk/test/metrics/meter_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ nostd::shared_ptr<metrics::Meter> InitMeter(MetricReader **metricReaderPtr,
2828
auto meter = provider->GetMeter(meter_name);
2929
return meter;
3030
}
31-
} // namespace
3231

3332
void asyc_generate_measurements(opentelemetry::metrics::ObserverResult observer, void * /* state */)
3433
{
3534
auto observer_long =
3635
nostd::get<nostd::shared_ptr<opentelemetry::metrics::ObserverResultT<int64_t>>>(observer);
3736
observer_long->Observe(10);
3837
}
38+
} // namespace
3939

4040
TEST(MeterTest, BasicAsyncTests)
4141
{

sdk/test/metrics/periodic_exporting_metric_reader_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ TEST(PeriodicExporingMetricReader, BasicTests)
8383
MockMetricProducer producer;
8484
reader->SetMetricProducer(&producer);
8585
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
86-
EXPECT_NO_THROW(reader->ForceFlush());
86+
reader->ForceFlush();
8787
reader->Shutdown();
8888
EXPECT_EQ(static_cast<MockPushMetricExporter *>(exporter_ptr)->GetDataCount(),
8989
static_cast<MockMetricProducer *>(&producer)->GetDataCount());

0 commit comments

Comments
 (0)