Skip to content

Commit 09ade3b

Browse files
authored
Add go 1.22 and 1.23 to socket tracer tests. Bump minor go versions (#2116)
Summary: Add go 1.22 and 1.23 to socket tracer tests. Bump minor go versions This PR adds Go 1.22 and 1.23 to the socket tracer test suite in anticipation of removing Go 1.16 and 1.17 from our repo once #2108 is merged. The plan is to follow this up with a change that removes Go 1.16 and 1.17 in addition to upgrading a portion of our Go dependencies. The bulk of our dependencies still support Go 1.18, so this will allow us to upgrade to the latest versions. Relevant Issues: N/A Type of change: /kind cleanup Test Plan: Test suite passes --------- Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
1 parent 8232eee commit 09ade3b

15 files changed

+427
-22
lines changed

WORKSPACE

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,17 +228,27 @@ go_download_sdk(
228228

229229
go_download_sdk(
230230
name = "go_sdk_1_19",
231-
version = "1.19.10",
231+
version = "1.19.13",
232232
)
233233

234234
go_download_sdk(
235235
name = "go_sdk_1_20",
236-
version = "1.20.5",
236+
version = "1.20.14",
237237
)
238238

239239
go_download_sdk(
240240
name = "go_sdk_1_21",
241-
version = "1.21.0",
241+
version = "1.21.13",
242+
)
243+
244+
go_download_sdk(
245+
name = "go_sdk_1_22",
246+
version = "1.22.12",
247+
)
248+
249+
go_download_sdk(
250+
name = "go_sdk_1_23",
251+
version = "1.23.6",
242252
)
243253

244254
# The go_sdk_boringcrypto SDK is used for testing boringcrypto specific functionality (TLS tracing).
@@ -252,7 +262,7 @@ go_download_sdk(
252262
name = "go_sdk_boringcrypto",
253263
experiments = ["boringcrypto"],
254264
# TODO(james): update this to 1.21.0, once there is a 1.21.1 release.
255-
version = "1.20.4",
265+
version = "1.20.13",
256266
)
257267

258268
pip_parse(

bazel/pl_build_system.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
2323
load("@rules_python//python:defs.bzl", "py_test")
2424
load("//bazel:toolchain_transitions.bzl", "qemu_interactive_runner")
2525

26-
pl_boringcrypto_go_sdk = ["1.20.4"]
27-
pl_supported_go_sdk_versions = ["1.16", "1.17", "1.18", "1.19", "1.20", "1.21"]
26+
pl_boringcrypto_go_sdk = ["1.20.13"]
27+
pl_supported_go_sdk_versions = ["1.16", "1.17", "1.18", "1.19", "1.20", "1.21", "1.22", "1.23"]
2828

2929
# The last version in this list corresponds to the boringcrypto go sdk version.
3030
pl_all_supported_go_sdk_versions = pl_supported_go_sdk_versions + pl_boringcrypto_go_sdk

src/stirling/obj_tools/go_syms_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST(ReadGoBuildVersionTest, BuildinfoEndianAgnostic) {
5151
const std::string kPath = px::testing::BazelRunfilePath(kTestGoBinaryPath);
5252
ASSERT_OK_AND_ASSIGN(std::unique_ptr<ElfReader> elf_reader, ElfReader::Create(kPath));
5353
ASSERT_OK_AND_ASSIGN(std::string version, ReadGoBuildVersion(elf_reader.get()));
54-
EXPECT_THAT(version, StrEq("go1.19.10"));
54+
EXPECT_THAT(version, StrEq("go1.19.13"));
5555
}
5656

5757
TEST(ReadGoBuildVersionTest, BuildinfoLittleEndian) {

src/stirling/source_connectors/socket_tracer/BUILD.bazel

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,13 +310,17 @@ pl_cc_bpf_test(
310310
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_1_19_grpc_client",
311311
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_1_20_grpc_client",
312312
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_1_21_grpc_client",
313+
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_1_22_grpc_client",
314+
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_1_23_grpc_client",
313315
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client:golang_boringcrypto_grpc_client",
314316
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_16_grpc_server_with_certs",
315317
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_17_grpc_server_with_certs",
316318
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_18_grpc_server_with_certs",
317319
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_19_grpc_server_with_certs",
318320
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_20_grpc_server_with_certs",
319321
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_21_grpc_server_with_certs",
322+
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_22_grpc_server_with_certs",
323+
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_1_23_grpc_server_with_certs",
320324
"//src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server:golang_boringcrypto_grpc_server_with_certs",
321325
],
322326
flaky = True,
@@ -362,6 +366,10 @@ pl_cc_bpf_test(
362366
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_20_grpc_server_container",
363367
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_21_grpc_client_container",
364368
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_21_grpc_server_container",
369+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_22_grpc_client_container",
370+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_22_grpc_server_container",
371+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_23_grpc_client_container",
372+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_23_grpc_server_container",
365373
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_boringcrypto_grpc_client_container",
366374
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_boringcrypto_grpc_server_container",
367375
"//src/stirling/source_connectors/socket_tracer/testing/container_images:product_catalog_client_container",
@@ -551,8 +559,6 @@ pl_cc_bpf_test(
551559
"//src/common/exec:cc_library",
552560
"//src/common/testing/test_utils:cc_library",
553561
"//src/stirling/source_connectors/socket_tracer/testing:cc_library",
554-
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_17_tls_client_container",
555-
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_17_tls_server_container",
556562
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_18_tls_client_container",
557563
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_18_tls_server_container",
558564
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_19_tls_client_container",
@@ -561,6 +567,10 @@ pl_cc_bpf_test(
561567
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_20_tls_server_container",
562568
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_21_tls_client_container",
563569
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_21_tls_server_container",
570+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_22_tls_client_container",
571+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_22_tls_server_container",
572+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_23_tls_client_container",
573+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_1_23_tls_server_container",
564574
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_boringcrypto_tls_client_container",
565575
"//src/stirling/source_connectors/socket_tracer/testing/container_images:go_boringcrypto_tls_server_container",
566576
"//src/stirling/testing:cc_library",

src/stirling/source_connectors/socket_tracer/go_tls_trace_bpf_test.cc

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
#include <gtest/gtest.h>
2121

2222
#include "src/common/testing/testing.h"
23-
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_17_tls_client_container.h"
24-
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_17_tls_server_container.h"
2523
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_client_container.h"
2624
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_server_container.h"
2725
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_tls_client_container.h"
@@ -30,6 +28,10 @@
3028
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_tls_server_container.h"
3129
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_client_container.h"
3230
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_server_container.h"
31+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_client_container.h"
32+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_server_container.h"
33+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_client_container.h"
34+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_server_container.h"
3335
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_client_container.h"
3436
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_server_container.h"
3537
#include "src/stirling/source_connectors/socket_tracer/testing/protocol_checkers.h"
@@ -69,11 +71,6 @@ class GoTLSTraceTest : public testing::SocketTraceBPFTestFixture</* TClientSideT
6971
typename TClientServerContainers::GoTLSClientContainer client_;
7072
};
7173

72-
struct Go1_17TLSClientServerContainers {
73-
using GoTLSServerContainer = ::px::stirling::testing::Go1_17_TLSServerContainer;
74-
using GoTLSClientContainer = ::px::stirling::testing::Go1_17_TLSClientContainer;
75-
};
76-
7774
struct Go1_18TLSClientServerContainers {
7875
using GoTLSServerContainer = ::px::stirling::testing::Go1_18_TLSServerContainer;
7976
using GoTLSClientContainer = ::px::stirling::testing::Go1_18_TLSClientContainer;
@@ -94,14 +91,25 @@ struct Go1_21TLSClientServerContainers {
9491
using GoTLSClientContainer = ::px::stirling::testing::Go1_21_TLSClientContainer;
9592
};
9693

94+
struct Go1_22TLSClientServerContainers {
95+
using GoTLSServerContainer = ::px::stirling::testing::Go1_22_TLSServerContainer;
96+
using GoTLSClientContainer = ::px::stirling::testing::Go1_22_TLSClientContainer;
97+
};
98+
99+
struct Go1_23TLSClientServerContainers {
100+
using GoTLSServerContainer = ::px::stirling::testing::Go1_23_TLSServerContainer;
101+
using GoTLSClientContainer = ::px::stirling::testing::Go1_23_TLSClientContainer;
102+
};
103+
97104
struct GoBoringCryptoTLSClientServerContainers {
98105
using GoTLSServerContainer = ::px::stirling::testing::GoBoringCryptoTLSServerContainer;
99106
using GoTLSClientContainer = ::px::stirling::testing::GoBoringCryptoTLSClientContainer;
100107
};
101108

102-
typedef ::testing::Types<Go1_17TLSClientServerContainers, Go1_18TLSClientServerContainers,
109+
typedef ::testing::Types<GoBoringCryptoTLSClientServerContainers, Go1_18TLSClientServerContainers,
103110
Go1_19TLSClientServerContainers, Go1_20TLSClientServerContainers,
104-
Go1_21TLSClientServerContainers, GoBoringCryptoTLSClientServerContainers>
111+
Go1_21TLSClientServerContainers, Go1_22TLSClientServerContainers,
112+
Go1_23TLSClientServerContainers>
105113
GoVersions;
106114
TYPED_TEST_SUITE(GoTLSTraceTest, GoVersions);
107115

src/stirling/source_connectors/socket_tracer/http2_trace_bpf_test.cc

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_grpc_server_container.h"
3232
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_client_container.h"
3333
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_server_container.h"
34+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_client_container.h"
35+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_server_container.h"
36+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_client_container.h"
37+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_server_container.h"
3438
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_client_container.h"
3539
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_server_container.h"
3640
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/product_catalog_client_container.h"
@@ -58,7 +62,7 @@ using ::testing::UnorderedElementsAre;
5862
// HTTP2TraceTest
5963
//-----------------------------------------------------------------------------
6064

61-
// Test is templated so it can use Go 1.16 or 1.17 versions of client/server.
65+
// Test is templated so it can use Go any go version for the client/server.
6266
template <typename TClientServerContainers>
6367
class HTTP2TraceTest : public testing::SocketTraceBPFTestFixture</* TClientSideTracing */ false> {
6468
protected:
@@ -98,14 +102,25 @@ struct Go1_21GRPCClientServerContainers {
98102
using ClientContainer = ::px::stirling::testing::Go1_21_GRPCClientContainer;
99103
};
100104

105+
struct Go1_22GRPCClientServerContainers {
106+
using ServerContainer = ::px::stirling::testing::Go1_22_GRPCServerContainer;
107+
using ClientContainer = ::px::stirling::testing::Go1_22_GRPCClientContainer;
108+
};
109+
110+
struct Go1_23GRPCClientServerContainers {
111+
using ServerContainer = ::px::stirling::testing::Go1_23_GRPCServerContainer;
112+
using ClientContainer = ::px::stirling::testing::Go1_23_GRPCClientContainer;
113+
};
114+
101115
struct GoBoringCryptoGRPCClientServerContainers {
102116
using ServerContainer = ::px::stirling::testing::GoBoringCryptoGRPCServerContainer;
103117
using ClientContainer = ::px::stirling::testing::GoBoringCryptoGRPCClientContainer;
104118
};
105119

106-
typedef ::testing::Types<Go1_17GRPCClientServerContainers, Go1_18GRPCClientServerContainers,
107-
Go1_19GRPCClientServerContainers, Go1_20GRPCClientServerContainers,
108-
Go1_21GRPCClientServerContainers, GoBoringCryptoGRPCClientServerContainers>
120+
typedef ::testing::Types<GoBoringCryptoGRPCClientServerContainers, Go1_17GRPCClientServerContainers,
121+
Go1_18GRPCClientServerContainers, Go1_19GRPCClientServerContainers,
122+
Go1_20GRPCClientServerContainers, Go1_21GRPCClientServerContainers,
123+
Go1_22GRPCClientServerContainers, Go1_23GRPCClientServerContainers>
109124
GoVersions;
110125
TYPED_TEST_SUITE(HTTP2TraceTest, GoVersions);
111126

src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ pl_supported_go_sdk_versions = [
2323
"1.19",
2424
"1.20",
2525
"1.21",
26+
"1.22",
27+
"1.23",
2628
]
2729

2830
pl_all_supported_go_sdk_versions = pl_supported_go_sdk_versions + pl_boringcrypto_go_sdk
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright 2018- The Pixie Authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* SPDX-License-Identifier: Apache-2.0
17+
*/
18+
19+
#pragma once
20+
21+
#include <string>
22+
23+
#include "src/common/testing/test_environment.h"
24+
#include "src/common/testing/test_utils/container_runner.h"
25+
26+
namespace px {
27+
namespace stirling {
28+
namespace testing {
29+
30+
class Go1_22_GRPCClientContainer : public ContainerRunner {
31+
public:
32+
Go1_22_GRPCClientContainer()
33+
: ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix,
34+
kReadyMessage) {}
35+
36+
private:
37+
static constexpr std::string_view kBazelImageTar =
38+
"src/stirling/testing/demo_apps/go_grpc_tls_pl/client/golang_1_22_grpc_tls_client.tar";
39+
static constexpr std::string_view kContainerNamePrefix = "grpc_client";
40+
static constexpr std::string_view kReadyMessage = "";
41+
};
42+
43+
} // namespace testing
44+
} // namespace stirling
45+
} // namespace px
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright 2018- The Pixie Authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* SPDX-License-Identifier: Apache-2.0
17+
*/
18+
19+
#pragma once
20+
21+
#include <string>
22+
23+
#include "src/common/testing/test_environment.h"
24+
#include "src/common/testing/test_utils/container_runner.h"
25+
26+
namespace px {
27+
namespace stirling {
28+
namespace testing {
29+
30+
class Go1_22_GRPCServerContainer : public ContainerRunner {
31+
public:
32+
Go1_22_GRPCServerContainer()
33+
: ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix,
34+
kReadyMessage) {}
35+
36+
private:
37+
static constexpr std::string_view kBazelImageTar =
38+
"src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_22_grpc_tls_server.tar";
39+
static constexpr std::string_view kContainerNamePrefix = "grpc_server";
40+
static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server";
41+
};
42+
43+
} // namespace testing
44+
} // namespace stirling
45+
} // namespace px
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright 2018- The Pixie Authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* SPDX-License-Identifier: Apache-2.0
17+
*/
18+
19+
#pragma once
20+
21+
#include <string>
22+
23+
#include "src/common/testing/test_environment.h"
24+
#include "src/common/testing/test_utils/container_runner.h"
25+
26+
namespace px {
27+
namespace stirling {
28+
namespace testing {
29+
30+
class Go1_22_TLSClientContainer : public ContainerRunner {
31+
public:
32+
Go1_22_TLSClientContainer()
33+
: ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix,
34+
kReadyMessage) {}
35+
36+
private:
37+
static constexpr std::string_view kBazelImageTar =
38+
"src/stirling/testing/demo_apps/go_https/client/golang_1_22_https_client.tar";
39+
static constexpr std::string_view kContainerNamePrefix = "https_client";
40+
static constexpr std::string_view kReadyMessage = R"({"status":"ok"})";
41+
};
42+
43+
} // namespace testing
44+
} // namespace stirling
45+
} // namespace px

0 commit comments

Comments
 (0)