Skip to content

Conversation

@tigrannajaryan
Copy link
Collaborator

@tigrannajaryan tigrannajaryan commented Jul 30, 2025

We have testcases in stefgen/generator/testdata which currently generate Go and Java code from schemas, but only run Go tests. We need to also run Java tests.

The action generates Java code from schemas using stefgen, then runs Java tests.

Resolves #114

@tigrannajaryan tigrannajaryan force-pushed the tigran/stefgenjavatests branch from 05ce258 to d50e8ee Compare July 30, 2025 13:23
@github-actions
Copy link

github-actions bot commented Jul 30, 2025

Benchmark Result

Benchmark diff with base branch
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │     sec/op     │    sec/op     vs base              │
SerializeNative/STEF/none-4                          14.26m ±  5%   14.42m ±  3%       ~ (p=0.310 n=6)
SerializeNative/STEFU/none-4                         43.05m ±  7%   43.31m ±  5%       ~ (p=0.589 n=6)
DeserializeNative/STEF/none-4                        2.998m ±  1%   3.008m ±  1%       ~ (p=0.132 n=6)
DeserializeNative/STEFU/none-4                       12.14m ±  1%   12.32m ±  1%  +1.48% (p=0.015 n=6)
SerializeFromPdata/STEF/none-4                       202.9m ±  2%   222.1m ±  4%  +9.45% (p=0.002 n=6)
SerializeFromPdata/STEFU/none-4                      42.57m ±  2%   43.32m ±  3%       ~ (p=0.394 n=6)
DeserializeToPdata/STEF/none-4                       43.28m ±  2%   43.93m ±  2%       ~ (p=0.132 n=6)
DeserializeToPdata/STEFU/none-4                      68.44m ±  2%   67.75m ±  2%       ~ (p=0.065 n=6)
STEFReaderRead-4                                     2.997m ±  2%   2.981m ±  1%       ~ (p=0.589 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.878 ±  9%    3.712 ± 10%  -4.29% (p=0.041 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     96.03m ± 19%   96.91m ±  1%       ~ (p=0.065 n=6)
ReadSTEF-4                                           3.007m ±  1%   3.027m ±  1%       ~ (p=0.240 n=6)
ReadSTEFZ-4                                          5.219m ±  2%   5.015m ±  2%  -3.89% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 9.616m ±  3%   9.854m ±  2%       ~ (p=0.132 n=6)
geomean                                              26.76m         26.94m        +0.70%

                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base              │
SerializeNative/STEF/none-4                          213.3n ±  5%   215.6n ±  3%       ~ (p=0.310 n=6)
SerializeNative/STEFU/none-4                         643.7n ±  7%   647.8n ±  4%       ~ (p=0.589 n=6)
DeserializeNative/STEF/none-4                        44.84n ±  1%   44.98n ±  1%       ~ (p=0.102 n=6)
DeserializeNative/STEFU/none-4                       181.5n ±  2%   184.2n ±  1%  +1.46% (p=0.015 n=6)
SerializeFromPdata/STEF/none-4                       3.034µ ±  2%   3.321µ ±  4%  +9.44% (p=0.002 n=6)
SerializeFromPdata/STEFU/none-4                      636.7n ±  2%   647.8n ±  3%       ~ (p=0.394 n=6)
DeserializeToPdata/STEF/none-4                       647.4n ±  2%   657.1n ±  2%       ~ (p=0.102 n=6)
DeserializeToPdata/STEFU/none-4                      1.024µ ±  2%   1.013µ ±  2%       ~ (p=0.054 n=6)
STEFReaderRead-4                                     44.82n ±  2%   44.58n ±  1%       ~ (p=0.621 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.930µ ±  9%   4.718µ ± 10%  -4.29% (p=0.037 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     122.0n ± 19%   123.1n ±  1%       ~ (p=0.063 n=6)
ReadSTEF-4                                           45.01n ±  1%   45.30n ±  1%       ~ (p=0.240 n=6)
ReadSTEFZ-4                                          78.11n ±  2%   75.06n ±  2%  -3.89% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 144.0n ±  3%   147.5n ±  2%       ~ (p=0.132 n=6)
geomean                                              281.4n         283.4n        +0.70%

                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │      B/op      │     B/op      vs base              │
SerializeNative/STEF/none-4                          3.481Mi ± 0%   3.482Mi ± 0%       ~ (p=0.589 n=6)
SerializeNative/STEFU/none-4                         6.951Mi ± 0%   6.951Mi ± 0%       ~ (p=0.699 n=6)
DeserializeNative/STEF/none-4                        841.2Ki ± 0%   841.2Ki ± 0%       ~ (p=0.545 n=6)
DeserializeNative/STEFU/none-4                       1.465Mi ± 0%   1.465Mi ± 0%       ~ (p=0.970 n=6)
SerializeFromPdata/STEF/none-4                       138.0Mi ± 0%   138.0Mi ± 0%       ~ (p=0.310 n=6)
SerializeFromPdata/STEFU/none-4                      6.951Mi ± 0%   6.951Mi ± 0%  +0.00% (p=0.004 n=6)
DeserializeToPdata/STEF/none-4                       29.81Mi ± 0%   29.81Mi ± 0%       ~ (p=0.660 n=6)
DeserializeToPdata/STEFU/none-4                      36.53Mi ± 0%   36.53Mi ± 0%       ~ (p=0.509 n=6)
STEFReaderRead-4                                     841.2Ki ± 0%   841.2Ki ± 0%       ~ (p=0.504 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       3.650Gi ± 0%   3.648Gi ± 0%       ~ (p=0.240 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.17Mi ± 0%   20.17Mi ± 0%       ~ (p=0.965 n=6)
ReadSTEF-4                                           841.2Ki ± 0%   841.2Ki ± 0%       ~ (p=0.361 n=6)
ReadSTEFZ-4                                          10.20Mi ± 0%   10.20Mi ± 0%       ~ (p=0.180 n=6)
ReadSTEFZWriteSTEF-4                                 13.53Mi ± 0%   13.53Mi ± 0%       ~ (p=0.132 n=6)
geomean                                              10.56Mi        10.56Mi       -0.00%

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   allocs/op    │  allocs/op   vs base                │
SerializeNative/STEF/none-4                           2.890k ± 1%   2.893k ± 1%       ~ (p=0.416 n=6)
SerializeNative/STEFU/none-4                          1.056k ± 0%   1.056k ± 0%       ~ (p=0.364 n=6)
DeserializeNative/STEF/none-4                         1.330k ± 0%   1.330k ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/none-4                        1.391k ± 0%   1.391k ± 0%       ~ (p=1.000 n=6) ¹
SerializeFromPdata/STEF/none-4                        256.4k ± 0%   256.4k ± 0%       ~ (p=0.058 n=6)
SerializeFromPdata/STEFU/none-4                       1.057k ± 0%   1.058k ± 0%  +0.09% (p=0.013 n=6)
DeserializeToPdata/STEF/none-4                        623.4k ± 0%   623.4k ± 0%       ~ (p=1.000 n=6) ¹
DeserializeToPdata/STEFU/none-4                       812.2k ± 0%   812.2k ± 0%       ~ (p=1.000 n=6) ¹
STEFReaderRead-4                                      1.330k ± 0%   1.330k ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4        14.44M ± 0%   14.44M ± 0%       ~ (p=0.699 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4      8.390k ± 0%   8.390k ± 0%       ~ (p=1.000 n=6)
ReadSTEF-4                                            1.330k ± 0%   1.330k ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZ-4                                           1.364k ± 0%   1.364k ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZWriteSTEF-4                                  2.320k ± 0%   2.320k ± 0%       ~ (p=0.545 n=6)
geomean                                               11.26k        11.26k       +0.02%
¹ all samples are equal
Benchmark result
benchstat bench-new.txt
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-new.txt │
                                                 │    sec/op     │
SerializeNative/STEF/none-4                         14.42m ±  3%
SerializeNative/STEFU/none-4                        43.31m ±  5%
DeserializeNative/STEF/none-4                       3.008m ±  1%
DeserializeNative/STEFU/none-4                      12.32m ±  1%
SerializeFromPdata/STEF/none-4                      222.1m ±  4%
SerializeFromPdata/STEFU/none-4                     43.32m ±  3%
DeserializeToPdata/STEF/none-4                      43.93m ±  2%
DeserializeToPdata/STEFU/none-4                     67.75m ±  2%
STEFReaderRead-4                                    2.981m ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.712 ± 10%
STEFDeserializeMultipart/astronomy-otelmetrics-4    96.91m ±  1%
ReadSTEF-4                                          3.027m ±  1%
ReadSTEFZ-4                                         5.015m ±  2%
ReadSTEFZWriteSTEF-4                                9.854m ±  2%
geomean                                             26.94m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/none-4                         215.6n ±  3%
SerializeNative/STEFU/none-4                        647.8n ±  4%
DeserializeNative/STEF/none-4                       44.98n ±  1%
DeserializeNative/STEFU/none-4                      184.2n ±  1%
SerializeFromPdata/STEF/none-4                      3.321µ ±  4%
SerializeFromPdata/STEFU/none-4                     647.8n ±  3%
DeserializeToPdata/STEF/none-4                      657.1n ±  2%
DeserializeToPdata/STEFU/none-4                     1.013µ ±  2%
STEFReaderRead-4                                    44.58n ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.718µ ± 10%
STEFDeserializeMultipart/astronomy-otelmetrics-4    123.1n ±  1%
ReadSTEF-4                                          45.30n ±  1%
ReadSTEFZ-4                                         75.06n ±  2%
ReadSTEFZWriteSTEF-4                                147.5n ±  2%
geomean                                             283.4n

                                                 │ bench-new.txt │
                                                 │     B/op      │
SerializeNative/STEF/none-4                         3.482Mi ± 0%
SerializeNative/STEFU/none-4                        6.951Mi ± 0%
DeserializeNative/STEF/none-4                       841.2Ki ± 0%
DeserializeNative/STEFU/none-4                      1.465Mi ± 0%
SerializeFromPdata/STEF/none-4                      138.0Mi ± 0%
SerializeFromPdata/STEFU/none-4                     6.951Mi ± 0%
DeserializeToPdata/STEF/none-4                      29.81Mi ± 0%
DeserializeToPdata/STEFU/none-4                     36.53Mi ± 0%
STEFReaderRead-4                                    841.2Ki ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4      3.648Gi ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4    20.17Mi ± 0%
ReadSTEF-4                                          841.2Ki ± 0%
ReadSTEFZ-4                                         10.20Mi ± 0%
ReadSTEFZWriteSTEF-4                                13.53Mi ± 0%
geomean                                             10.56Mi

                                                 │ bench-new.txt │
                                                 │   allocs/op   │
SerializeNative/STEF/none-4                          2.893k ± 1%
SerializeNative/STEFU/none-4                         1.056k ± 0%
DeserializeNative/STEF/none-4                        1.330k ± 0%
DeserializeNative/STEFU/none-4                       1.391k ± 0%
SerializeFromPdata/STEF/none-4                       256.4k ± 0%
SerializeFromPdata/STEFU/none-4                      1.058k ± 0%
DeserializeToPdata/STEF/none-4                       623.4k ± 0%
DeserializeToPdata/STEFU/none-4                      812.2k ± 0%
STEFReaderRead-4                                     1.330k ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4       14.44M ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4     8.390k ± 0%
ReadSTEF-4                                           1.330k ± 0%
ReadSTEFZ-4                                          1.364k ± 0%
ReadSTEFZWriteSTEF-4                                 2.320k ± 0%
geomean                                              11.26k

@tigrannajaryan tigrannajaryan force-pushed the tigran/stefgenjavatests branch 6 times, most recently from 6b4238f to 4e3013b Compare July 30, 2025 19:10
We have testcases in stefgen/generator/testdata which currently generate Go and Java code from schemas, but only run Go tests. We need to also run Java tests.

The action sets up both Go and Java, builds stefgen using Go, generates Java code from schemas using stefgen, then runs Java tests.

#114
@tigrannajaryan tigrannajaryan force-pushed the tigran/stefgenjavatests branch from c58fc0e to 9b38967 Compare July 30, 2025 19:33
@tigrannajaryan tigrannajaryan marked this pull request as ready for review July 30, 2025 19:35
@tigrannajaryan tigrannajaryan merged commit c07973f into main Jul 31, 2025
9 checks passed
@tigrannajaryan tigrannajaryan deleted the tigran/stefgenjavatests branch July 31, 2025 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Run Java tests on generated schemas in stefgen on Github

2 participants