From ba17f22d2e5624b93006034d344af0aed16dab67 Mon Sep 17 00:00:00 2001 From: kishanps Date: Mon, 8 Jan 2024 22:21:52 -0800 Subject: [PATCH] [Thinkit] Implement the various flow programmers for PINs NSF tests. PiperOrigin-RevId: 596809160 --- .../system/nsf/flow_programmers/BUILD.bazel | 53 +++++++++++++++++++ .../fuzzer_replay_programmer.h | 37 +++++++++++++ .../nsf/flow_programmers/replay_programmer.h | 37 +++++++++++++ .../nsf/flow_programmers/static_programmer.h | 37 +++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 tests/integration/system/nsf/flow_programmers/BUILD.bazel create mode 100644 tests/integration/system/nsf/flow_programmers/fuzzer_replay_programmer.h create mode 100644 tests/integration/system/nsf/flow_programmers/replay_programmer.h create mode 100644 tests/integration/system/nsf/flow_programmers/static_programmer.h diff --git a/tests/integration/system/nsf/flow_programmers/BUILD.bazel b/tests/integration/system/nsf/flow_programmers/BUILD.bazel new file mode 100644 index 00000000..9a54ed61 --- /dev/null +++ b/tests/integration/system/nsf/flow_programmers/BUILD.bazel @@ -0,0 +1,53 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This package implements the various flow programmers for PINs NSF tests. + +package( + default_visibility = ["//visibility:public"], + licenses = ["notice"], +) + +cc_library( + name = "static_programmer", + testonly = True, + hdrs = ["static_programmer.h"], + deps = [ + "//tests/integration/system/nsf/interfaces:flow_programmer", + "//thinkit:generic_testbed", + "@com_google_absl//absl/status", + ], +) + +cc_library( + name = "fuzzer_replay_programmer", + testonly = True, + hdrs = ["fuzzer_replay_programmer.h"], + deps = [ + "//tests/integration/system/nsf/interfaces:flow_programmer", + "//thinkit:generic_testbed", + "@com_google_absl//absl/status", + ], +) + +cc_library( + name = "replay_programmer", + testonly = True, + hdrs = ["replay_programmer.h"], + deps = [ + "//tests/integration/system/nsf/interfaces:flow_programmer", + "//thinkit:generic_testbed", + "@com_google_absl//absl/status", + ], +) diff --git a/tests/integration/system/nsf/flow_programmers/fuzzer_replay_programmer.h b/tests/integration/system/nsf/flow_programmers/fuzzer_replay_programmer.h new file mode 100644 index 00000000..9dbcd325 --- /dev/null +++ b/tests/integration/system/nsf/flow_programmers/fuzzer_replay_programmer.h @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_FUZZER_REPLAY_PROGRAMMER_H_ +#define PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_FUZZER_REPLAY_PROGRAMMER_H_ + +#include "absl/status/status.h" +#include "tests/integration/system/nsf/interfaces/flow_programmer.h" +#include "thinkit/generic_testbed.h" + +namespace pins_test { + +class FuzzerReplayProgrammer : public FlowProgrammer { + public: + absl::Status ProgramFlows(IpVersion ip_version, Protocol protocol, + thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; + absl::Status ClearFlows(thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; +}; + +} // namespace pins_test + +#endif // PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_FUZZER_REPLAY_PROGRAMMER_H_ diff --git a/tests/integration/system/nsf/flow_programmers/replay_programmer.h b/tests/integration/system/nsf/flow_programmers/replay_programmer.h new file mode 100644 index 00000000..1dda29a2 --- /dev/null +++ b/tests/integration/system/nsf/flow_programmers/replay_programmer.h @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_REPLAY_PROGRAMMER_H_ +#define PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_REPLAY_PROGRAMMER_H_ + +#include "absl/status/status.h" +#include "tests/integration/system/nsf/interfaces/flow_programmer.h" +#include "thinkit/generic_testbed.h" + +namespace pins_test { + +class ReplayProgrammer : public FlowProgrammer { + public: + absl::Status ProgramFlows(IpVersion ip_version, Protocol protocol, + thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; + absl::Status ClearFlows(thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; +}; + +} // namespace pins_test + +#endif // PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_REPLAY_PROGRAMMER_H_ diff --git a/tests/integration/system/nsf/flow_programmers/static_programmer.h b/tests/integration/system/nsf/flow_programmers/static_programmer.h new file mode 100644 index 00000000..a6605c94 --- /dev/null +++ b/tests/integration/system/nsf/flow_programmers/static_programmer.h @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_STATIC_PROGRAMMER_H_ +#define PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_STATIC_PROGRAMMER_H_ + +#include "absl/status/status.h" +#include "tests/integration/system/nsf/interfaces/flow_programmer.h" +#include "thinkit/generic_testbed.h" + +namespace pins_test { + +class StaticProgrammer : public FlowProgrammer { + public: + absl::Status ProgramFlows(IpVersion ip_version, Protocol protocol, + thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; + absl::Status ClearFlows(thinkit::GenericTestbed& testbed) override { + return absl::OkStatus(); + }; +}; + +} // namespace pins_test + +#endif // PINS_TESTS_INTEGRATION_SYSTEM_NSF_FLOW_PROGRAMMERS_STATIC_PROGRAMMER_H_