Skip to content

Commit 0267d62

Browse files
committed
Added test cases to improve code coverage
1 parent f858104 commit 0267d62

File tree

10 files changed

+897
-0
lines changed

10 files changed

+897
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function result = callbackWithAttributes3()
2+
% Test callback function for asynchronous instruments that uses attributes
3+
%
4+
% Copyright 2024 The MathWorks, Inc.
5+
6+
value = 30;
7+
result = opentelemetry.metrics.ObservableResult;
8+
result = result.observe(value, dictionary({"Level1"}, {"D"},{"Level2"},{"E"}));

test/tformat.m

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
classdef tformat < matlab.unittest.TestCase
2+
% tests for setting format in the exporter
3+
4+
% Copyright 2023-2024 The MathWorks, Inc.
5+
6+
properties
7+
OtelConfigFile
8+
JsonFile
9+
PidFile
10+
OtelcolName
11+
Otelcol
12+
ListPid
13+
ReadPidList
14+
ExtractPid
15+
Sigint
16+
Sigterm
17+
end
18+
19+
methods (TestClassSetup)
20+
function setupOnce(testCase)
21+
% add the utils folder to the path
22+
utilsfolder = fullfile(fileparts(mfilename('fullpath')), "utils");
23+
testCase.applyFixture(matlab.unittest.fixtures.PathFixture(utilsfolder));
24+
commonSetupOnce(testCase);
25+
end
26+
end
27+
28+
methods (TestMethodSetup)
29+
function setup(testCase)
30+
config = fullfile(fileparts(mfilename("fullpath")), "config", "otelcol_config.yml");
31+
commonSetup(testCase, config);
32+
end
33+
end
34+
35+
methods (TestMethodTeardown)
36+
function teardown(testCase)
37+
commonTeardown(testCase);
38+
end
39+
end
40+
41+
methods (Test)
42+
function testNondefaultFormat(testCase)
43+
% testNondefaultFormat: using an alternative format
44+
45+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpHttpSpanExporter", "class")), ...
46+
"Otlp HTTP exporter must be installed.");
47+
48+
tracername = "foo";
49+
spanname = "bar";
50+
51+
exp = opentelemetry.exporters.otlp.OtlpHttpSpanExporter(...
52+
"Format", "binary");
53+
processor = opentelemetry.sdk.trace.SimpleSpanProcessor(exp);
54+
tp = opentelemetry.sdk.trace.TracerProvider(processor);
55+
tr = getTracer(tp, tracername);
56+
sp = startSpan(tr, spanname);
57+
pause(1);
58+
endSpan(sp);
59+
60+
% perform test comparisons
61+
results = readJsonResults(testCase);
62+
results = results{1};
63+
64+
% check span and tracer names
65+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.spans.name), spanname);
66+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.scope.name), tracername);
67+
end
68+
69+
function testNondefaultGrpcFormat(testCase)
70+
% testNondefaultGrpcFormat: using an alternative format
71+
72+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpGrpcSpanExporter", "class")), ...
73+
"Otlp gRPC exporter must be installed.");
74+
75+
tracername = "foo";
76+
spanname = "bar";
77+
78+
exp = opentelemetry.exporters.otlp.OtlpGrpcSpanExporter(...
79+
"Format", "binary");
80+
processor = opentelemetry.sdk.trace.SimpleSpanProcessor(exp);
81+
tp = opentelemetry.sdk.trace.TracerProvider(processor);
82+
tr = getTracer(tp, tracername);
83+
sp = startSpan(tr, spanname);
84+
pause(1);
85+
endSpan(sp);
86+
87+
% perform test comparisons
88+
results = readJsonResults(testCase);
89+
results = results{1};
90+
91+
% check span and tracer names
92+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.spans.name), spanname);
93+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.scope.name), tracername);
94+
end
95+
96+
function NondefaultMetricsFormat(testCase)
97+
% testNondefaultMetricsFormat: using an alternative format
98+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpHttpMetricExporter", "class")), ...
99+
"Otlp HTTP exporter must be installed.");
100+
101+
exp = opentelemetry.exporters.otlp.OtlpHttpMetricExporter(...
102+
"Format", "binary");
103+
reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(...
104+
exp, "Interval", seconds(2), "Timeout", seconds(1));
105+
p = opentelemetry.sdk.metrics.MeterProvider(reader);
106+
mt = p.getMeter("foo");
107+
ct = mt.createCounter("bar");
108+
109+
val = 4;
110+
ct.add(val);
111+
pause(2.5);
112+
113+
% fetch result
114+
clear p;
115+
results = readJsonResults(testCase);
116+
117+
% verify counter value
118+
verifyEqual(testCase, results{end}.resourceMetrics.scopeMetrics.metrics.sum.dataPoints.asDouble, val);
119+
end
120+
121+
function NondefaultGrpcMetricsFormat(testCase)
122+
% testNondefaultGrpcMetricsFormat: using an alternative format
123+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpGrpcMetricExporter", "class")), ...
124+
"Otlp gRPC exporter must be installed.");
125+
126+
exp = opentelemetry.exporters.otlp.OtlpGrpcMetricExporter(...
127+
"Format", "binary");
128+
reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(...
129+
exp, "Interval", seconds(2), "Timeout", seconds(1));
130+
p = opentelemetry.sdk.metrics.MeterProvider(reader);
131+
mt = p.getMeter("foo");
132+
ct = mt.createCounter("bar");
133+
134+
val = 8;
135+
ct.add(val);
136+
pause(2.5);
137+
138+
% fetch result
139+
clear p;
140+
results = readJsonResults(testCase);
141+
142+
% verify counter value
143+
verifyEqual(testCase, results{end}.resourceMetrics.scopeMetrics.metrics.sum.dataPoints.asDouble, val);
144+
end
145+
146+
end
147+
end

test/thttpheaders.m

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
classdef thttpheaders < matlab.unittest.TestCase
2+
% tests for setting HTTPHeaders in the exporter
3+
4+
% Copyright 2023-2024 The MathWorks, Inc.
5+
6+
properties
7+
OtelConfigFile
8+
JsonFile
9+
PidFile
10+
OtelcolName
11+
Otelcol
12+
ListPid
13+
ReadPidList
14+
ExtractPid
15+
Sigint
16+
Sigterm
17+
end
18+
19+
methods (TestClassSetup)
20+
function setupOnce(testCase)
21+
% add the utils folder to the path
22+
utilsfolder = fullfile(fileparts(mfilename('fullpath')), "utils");
23+
testCase.applyFixture(matlab.unittest.fixtures.PathFixture(utilsfolder));
24+
commonSetupOnce(testCase);
25+
end
26+
end
27+
28+
methods (TestMethodSetup)
29+
function setup(testCase)
30+
config = fullfile(fileparts(mfilename("fullpath")), "config", "otelcol_config.yml");
31+
commonSetup(testCase, config);
32+
end
33+
end
34+
35+
methods (TestMethodTeardown)
36+
function teardown(testCase)
37+
commonTeardown(testCase);
38+
end
39+
end
40+
41+
methods (Test)
42+
function testNondefaultHTTPHeaders(testCase)
43+
% testNondefaultHTTPHeaders: using an alternative HTTPHeaders
44+
45+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpHttpSpanExporter", "class")), ...
46+
"Otlp HTTP exporter must be installed.");
47+
48+
tracername = "foo";
49+
spanname = "bar";
50+
51+
exp = opentelemetry.exporters.otlp.OtlpHttpSpanExporter(...
52+
"HTTPHeaders", dictionary("new","header"));
53+
processor = opentelemetry.sdk.trace.SimpleSpanProcessor(exp);
54+
tp = opentelemetry.sdk.trace.TracerProvider(processor);
55+
tr = getTracer(tp, tracername);
56+
sp = startSpan(tr, spanname);
57+
pause(1);
58+
endSpan(sp);
59+
60+
% perform test comparisons
61+
results = readJsonResults(testCase);
62+
results = results{1};
63+
64+
% check span and tracer names
65+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.spans.name), spanname);
66+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.scope.name), tracername);
67+
end
68+
69+
function testNondefaultGrpcHTTPHeaders(testCase)
70+
% testNondefaultGrpcHTTPHeaders: using an alternative HTTPHeaders
71+
72+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpGrpcSpanExporter", "class")), ...
73+
"Otlp gRPC exporter must be installed.");
74+
75+
tracername = "foo";
76+
spanname = "bar";
77+
78+
exp = opentelemetry.exporters.otlp.OtlpGrpcSpanExporter(...
79+
"HTTPHeaders", dictionary("new","header"));
80+
processor = opentelemetry.sdk.trace.SimpleSpanProcessor(exp);
81+
tp = opentelemetry.sdk.trace.TracerProvider(processor);
82+
tr = getTracer(tp, tracername);
83+
sp = startSpan(tr, spanname);
84+
pause(1);
85+
endSpan(sp);
86+
87+
% perform test comparisons
88+
results = readJsonResults(testCase);
89+
results = results{1};
90+
91+
% check span and tracer names
92+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.spans.name), spanname);
93+
verifyEqual(testCase, string(results.resourceSpans.scopeSpans.scope.name), tracername);
94+
end
95+
96+
function NondefaultMetricsHTTPHeaders(testCase)
97+
% testNondefaultMetricsHTTPHeaders: using an alternative HTTPHeaders
98+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpHttpMetricExporter", "class")), ...
99+
"Otlp HTTP exporter must be installed.");
100+
101+
exp = opentelemetry.exporters.otlp.OtlpHttpMetricExporter(...
102+
"HTTPHeaders", dictionary("new","header"));
103+
reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(...
104+
exp, "Interval", seconds(2), "Timeout", seconds(1));
105+
p = opentelemetry.sdk.metrics.MeterProvider(reader);
106+
mt = p.getMeter("foo");
107+
ct = mt.createCounter("bar");
108+
109+
val = 4;
110+
ct.add(val);
111+
pause(2.5);
112+
113+
% fetch result
114+
clear p;
115+
results = readJsonResults(testCase);
116+
117+
% verify counter value
118+
verifyEqual(testCase, results{end}.resourceMetrics.scopeMetrics.metrics.sum.dataPoints.asDouble, val);
119+
end
120+
121+
function NondefaultGrpcMetricsHTTPHeaders(testCase)
122+
% testNondefaultGrpcMetricsHTTPHeaders: using an alternative HTTPHeaders
123+
testCase.assumeTrue(logical(exist("opentelemetry.exporters.otlp.OtlpGrpcMetricExporter", "class")), ...
124+
"Otlp gRPC exporter must be installed.");
125+
126+
exp = opentelemetry.exporters.otlp.OtlpGrpcMetricExporter(...
127+
"HTTPHeaders", dictionary("new","header"));
128+
reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(...
129+
exp, "Interval", seconds(2), "Timeout", seconds(1));
130+
p = opentelemetry.sdk.metrics.MeterProvider(reader);
131+
mt = p.getMeter("foo");
132+
ct = mt.createCounter("bar");
133+
134+
val = 8;
135+
ct.add(val);
136+
pause(2.5);
137+
138+
% fetch result
139+
clear p;
140+
results = readJsonResults(testCase);
141+
142+
% verify counter value
143+
verifyEqual(testCase, results{end}.resourceMetrics.scopeMetrics.metrics.sum.dataPoints.asDouble, val);
144+
end
145+
146+
end
147+
end

0 commit comments

Comments
 (0)