Revert "Reland fuzzing event engine (#29943)" (#29947)

This reverts commit 72e65b03cf414a99447efc06aa3779062597ad9d.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a109c21..359845e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -761,9 +761,6 @@
   src/proto/grpc/testing/xds/v3/wrr_locality.proto src/proto/grpc/testing/xds/v3/wrr_locality.proto
 )
 protobuf_generate_grpc_cpp_with_import_path_correction(
-  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto
-)
-protobuf_generate_grpc_cpp_with_import_path_correction(
   test/core/tsi/alts/fake_handshaker/handshaker.proto test/core/tsi/alts/fake_handshaker/handshaker.proto
 )
 protobuf_generate_grpc_cpp_with_import_path_correction(
@@ -1023,7 +1020,6 @@
   add_dependencies(buildtests_cxx flow_control_end2end_test)
   add_dependencies(buildtests_cxx flow_control_test)
   add_dependencies(buildtests_cxx for_each_test)
-  add_dependencies(buildtests_cxx fuzzing_event_engine_test)
   add_dependencies(buildtests_cxx generic_end2end_test)
   if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
     add_dependencies(buildtests_cxx global_config_env_test)
@@ -10839,48 +10835,6 @@
 endif()
 if(gRPC_BUILD_TESTS)
 
-add_executable(fuzzing_event_engine_test
-  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
-  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
-  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
-  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
-  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
-  test/core/event_engine/test_suite/event_engine_test.cc
-  test/core/event_engine/test_suite/fuzzing_event_engine_test.cc
-  test/core/event_engine/test_suite/timer_test.cc
-  third_party/googletest/googletest/src/gtest-all.cc
-  third_party/googletest/googlemock/src/gmock-all.cc
-)
-
-target_include_directories(fuzzing_event_engine_test
-  PRIVATE
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/include
-    ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
-    ${_gRPC_RE2_INCLUDE_DIR}
-    ${_gRPC_SSL_INCLUDE_DIR}
-    ${_gRPC_UPB_GENERATED_DIR}
-    ${_gRPC_UPB_GRPC_GENERATED_DIR}
-    ${_gRPC_UPB_INCLUDE_DIR}
-    ${_gRPC_XXHASH_INCLUDE_DIR}
-    ${_gRPC_ZLIB_INCLUDE_DIR}
-    third_party/googletest/googletest/include
-    third_party/googletest/googletest
-    third_party/googletest/googlemock/include
-    third_party/googletest/googlemock
-    ${_gRPC_PROTO_GENS_DIR}
-)
-
-target_link_libraries(fuzzing_event_engine_test
-  ${_gRPC_PROTOBUF_LIBRARIES}
-  ${_gRPC_ALLTARGETS_LIBRARIES}
-  grpc_test_util
-)
-
-
-endif()
-if(gRPC_BUILD_TESTS)
-
 add_executable(generic_end2end_test
   ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
   ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index ef2d1a6..6395bef 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -6039,22 +6039,6 @@
   - gpr
   - upb
   uses_polling: false
-- name: fuzzing_event_engine_test
-  gtest: true
-  build: test
-  language: c++
-  headers:
-  - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h
-  - test/core/event_engine/test_suite/event_engine_test.h
-  src:
-  - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto
-  - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
-  - test/core/event_engine/test_suite/event_engine_test.cc
-  - test/core/event_engine/test_suite/fuzzing_event_engine_test.cc
-  - test/core/event_engine/test_suite/timer_test.cc
-  deps:
-  - grpc_test_util
-  uses_polling: false
 - name: generic_end2end_test
   gtest: true
   build: test
diff --git a/test/core/event_engine/fuzzing_event_engine/BUILD b/test/core/event_engine/fuzzing_event_engine/BUILD
deleted file mode 100644
index f4f69e8..0000000
--- a/test/core/event_engine/fuzzing_event_engine/BUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2021 gRPC authors.
-#
-# 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.
-
-load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_package")
-
-licenses(["notice"])
-
-grpc_package(
-    name = "test/core/event_engine/fuzzing_event_engine",
-    visibility = "tests",
-)
-
-grpc_cc_library(
-    name = "fuzzing_event_engine",
-    srcs = ["fuzzing_event_engine.cc"],
-    hdrs = ["fuzzing_event_engine.h"],
-    deps = [
-        ":fuzzing_event_engine_cc_proto",
-        "//:event_engine_base_hdrs",
-    ],
-)
-
-proto_library(
-    name = "fuzzing_event_engine_proto",
-    srcs = ["fuzzing_event_engine.proto"],
-)
-
-cc_proto_library(
-    name = "fuzzing_event_engine_cc_proto",
-    deps = ["fuzzing_event_engine_proto"],
-)
diff --git a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc b/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
deleted file mode 100644
index f4b2e45..0000000
--- a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright 2022 gRPC authors.
-//
-// 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.
-
-#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h"
-
-namespace grpc_event_engine {
-namespace experimental {
-
-namespace {
-const intptr_t kTaskHandleSalt = 12345;
-}
-
-FuzzingEventEngine::FuzzingEventEngine(Options options)
-    : final_tick_length_(options.final_tick_length) {
-  for (const auto& delay : options.actions.tick_lengths()) {
-    tick_increments_[delay.id()] += absl::Microseconds(delay.delay_us());
-  }
-  for (const auto& delay : options.actions.run_delay()) {
-    task_delays_[delay.id()] += absl::Microseconds(delay.delay_us());
-  }
-}
-
-void FuzzingEventEngine::Tick() {
-  std::vector<std::function<void()>> to_run;
-  {
-    grpc_core::MutexLock lock(&mu_);
-    // Increment time
-    auto tick_it = tick_increments_.find(current_tick_);
-    if (tick_it != tick_increments_.end()) {
-      now_ += tick_it->second;
-      tick_increments_.erase(tick_it);
-    } else if (tick_increments_.empty()) {
-      now_ += final_tick_length_;
-    }
-    ++current_tick_;
-    // Find newly expired timers.
-    while (!tasks_by_time_.empty() && tasks_by_time_.begin()->first <= now_) {
-      tasks_by_id_.erase(tasks_by_time_.begin()->second->id);
-      to_run.push_back(std::move(tasks_by_time_.begin()->second->closure));
-      tasks_by_time_.erase(tasks_by_time_.begin());
-    }
-  }
-  for (auto& closure : to_run) {
-    closure();
-  }
-}
-
-absl::Time FuzzingEventEngine::Now() {
-  grpc_core::MutexLock lock(&mu_);
-  return now_;
-}
-
-absl::StatusOr<std::unique_ptr<EventEngine::Listener>>
-FuzzingEventEngine::CreateListener(Listener::AcceptCallback,
-                                   std::function<void(absl::Status)>,
-                                   const EndpointConfig&,
-                                   std::unique_ptr<MemoryAllocatorFactory>) {
-  abort();
-}
-
-EventEngine::ConnectionHandle FuzzingEventEngine::Connect(
-    OnConnectCallback, const ResolvedAddress&, const EndpointConfig&,
-    MemoryAllocator, absl::Time) {
-  abort();
-}
-
-bool FuzzingEventEngine::CancelConnect(ConnectionHandle) { abort(); }
-
-bool FuzzingEventEngine::IsWorkerThread() { abort(); }
-
-std::unique_ptr<EventEngine::DNSResolver> FuzzingEventEngine::GetDNSResolver(
-    const DNSResolver::ResolverOptions&) {
-  abort();
-}
-
-void FuzzingEventEngine::Run(Closure* closure) { RunAt(Now(), closure); }
-
-void FuzzingEventEngine::Run(std::function<void()> closure) {
-  RunAt(Now(), closure);
-}
-
-EventEngine::TaskHandle FuzzingEventEngine::RunAt(absl::Time when,
-                                                  Closure* closure) {
-  return RunAt(when, [closure]() { closure->Run(); });
-}
-
-EventEngine::TaskHandle FuzzingEventEngine::RunAt(
-    absl::Time when, std::function<void()> closure) {
-  grpc_core::MutexLock lock(&mu_);
-  const intptr_t id = next_task_id_;
-  ++next_task_id_;
-  const auto delay_it = task_delays_.find(id);
-  // Under fuzzer configuration control, maybe make the task run later.
-  if (delay_it != task_delays_.end()) {
-    when += delay_it->second;
-    task_delays_.erase(delay_it);
-  }
-  auto task = std::make_shared<Task>(id, std::move(closure));
-  tasks_by_id_.emplace(id, task);
-  tasks_by_time_.emplace(when, std::move(task));
-  return TaskHandle{id, kTaskHandleSalt};
-}
-
-bool FuzzingEventEngine::Cancel(TaskHandle handle) {
-  grpc_core::MutexLock lock(&mu_);
-  GPR_ASSERT(handle.keys[1] == kTaskHandleSalt);
-  const intptr_t id = handle.keys[0];
-  auto it = tasks_by_id_.find(id);
-  if (it == tasks_by_id_.end()) {
-    return false;
-  }
-  if (it->second == nullptr) {
-    return false;
-  }
-  it->second = nullptr;
-  return true;
-}
-
-}  // namespace experimental
-}  // namespace grpc_event_engine
diff --git a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h b/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h
deleted file mode 100644
index 6dbed40..0000000
--- a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2022 gRPC authors.
-//
-// 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 GRPC_TEST_CORE_EVENT_ENGINE_FUZZING_EVENT_ENGINE_H
-#define GRPC_TEST_CORE_EVENT_ENGINE_FUZZING_EVENT_ENGINE_H
-
-#include <cstdint>
-#include <map>
-
-#include <grpc/event_engine/event_engine.h>
-
-#include "src/core/lib/gprpp/sync.h"
-#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h"
-
-namespace grpc_event_engine {
-namespace experimental {
-
-// EventEngine implementation to be used by fuzzers.
-class FuzzingEventEngine : public EventEngine {
- public:
-  struct Options {
-    // After all scheduled tick lengths are completed, this is the amount of
-    // time Now() will be incremented each tick.
-    absl::Duration final_tick_length = absl::Seconds(1);
-    fuzzing_event_engine::Actions actions;
-  };
-  explicit FuzzingEventEngine(Options options);
-  void Tick();
-
-  absl::StatusOr<std::unique_ptr<Listener>> CreateListener(
-      Listener::AcceptCallback on_accept,
-      std::function<void(absl::Status)> on_shutdown,
-      const EndpointConfig& config,
-      std::unique_ptr<MemoryAllocatorFactory> memory_allocator_factory)
-      override;
-
-  ConnectionHandle Connect(OnConnectCallback on_connect,
-                           const ResolvedAddress& addr,
-                           const EndpointConfig& args,
-                           MemoryAllocator memory_allocator,
-                           absl::Time deadline) override;
-
-  bool CancelConnect(ConnectionHandle handle) override;
-
-  bool IsWorkerThread() override;
-
-  std::unique_ptr<DNSResolver> GetDNSResolver(
-      const DNSResolver::ResolverOptions& options) override;
-
-  void Run(Closure* closure) override;
-  void Run(std::function<void()> closure) override;
-  TaskHandle RunAt(absl::Time when, Closure* closure) override;
-  TaskHandle RunAt(absl::Time when, std::function<void()> closure) override;
-  bool Cancel(TaskHandle handle) override;
-
-  absl::Time Now() ABSL_LOCKS_EXCLUDED(mu_);
-
- private:
-  struct Task {
-    Task(intptr_t id, std::function<void()> closure)
-        : id(id), closure(std::move(closure)) {}
-    intptr_t id;
-    std::function<void()> closure;
-  };
-
-  const absl::Duration final_tick_length_;
-
-  grpc_core::Mutex mu_;
-
-  intptr_t next_task_id_ ABSL_GUARDED_BY(mu_) = 1;
-  intptr_t current_tick_ ABSL_GUARDED_BY(mu_) = 0;
-  absl::Time now_ ABSL_GUARDED_BY(mu_) = absl::Now();
-  std::map<intptr_t, absl::Duration> tick_increments_ ABSL_GUARDED_BY(mu_);
-  std::map<intptr_t, absl::Duration> task_delays_ ABSL_GUARDED_BY(mu_);
-  std::map<intptr_t, std::shared_ptr<Task>> tasks_by_id_ ABSL_GUARDED_BY(mu_);
-  std::multimap<absl::Time, std::shared_ptr<Task>> tasks_by_time_
-      ABSL_GUARDED_BY(mu_);
-};
-
-}  // namespace experimental
-}  // namespace grpc_event_engine
-
-#endif
diff --git a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto b/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto
deleted file mode 100644
index 22ebe8f..0000000
--- a/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2021 gRPC authors.
-//
-// 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.
-
-syntax = "proto3";
-
-package fuzzing_event_engine;
-
-message Actions {
-    // Map of tick event (0..??) to the amount to increment the timer by.
-    repeated Delay tick_lengths = 1;
-    // Map of task id to the amount to delay execution of the task by.
-    repeated Delay run_delay = 2;
-};
-
-message Delay {
-    uint32 id = 1;
-    uint64 delay_us = 2;
-};
diff --git a/test/core/event_engine/test_suite/BUILD b/test/core/event_engine/test_suite/BUILD
index 6b5f47a..6aae882 100644
--- a/test/core/event_engine/test_suite/BUILD
+++ b/test/core/event_engine/test_suite/BUILD
@@ -78,16 +78,6 @@
     deps = ["//test/core/event_engine/test_suite:timer"],
 )
 
-grpc_cc_test(
-    name = "fuzzing_event_engine_test",
-    srcs = ["fuzzing_event_engine_test.cc"],
-    uses_polling = False,
-    deps = [
-        "//test/core/event_engine/fuzzing_event_engine",
-        "//test/core/event_engine/test_suite:timer",
-    ],
-)
-
 # -- Internal targets --
 
 grpc_cc_library(
diff --git a/test/core/event_engine/test_suite/fuzzing_event_engine_test.cc b/test/core/event_engine/test_suite/fuzzing_event_engine_test.cc
deleted file mode 100644
index 1d39284..0000000
--- a/test/core/event_engine/test_suite/fuzzing_event_engine_test.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2022 The gRPC Authors
-//
-// 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.
-
-#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h"
-
-#include <thread>
-
-#include <grpc/grpc.h>
-
-#include "test/core/event_engine/test_suite/event_engine_test.h"
-
-namespace grpc_event_engine {
-namespace experimental {
-namespace {
-
-class ThreadedFuzzingEventEngine : public FuzzingEventEngine {
- public:
-  ThreadedFuzzingEventEngine()
-      : FuzzingEventEngine([]() {
-          Options options;
-          options.final_tick_length = absl::Milliseconds(10);
-          return options;
-        }()),
-        main_([this]() {
-          while (!done_.load()) {
-            absl::SleepFor(absl::Milliseconds(10));
-            Tick();
-          }
-        }) {}
-
-  ~ThreadedFuzzingEventEngine() override {
-    done_.store(true);
-    main_.join();
-  }
-
- private:
-  std::atomic<bool> done_{false};
-  std::thread main_;
-};
-
-}  // namespace
-}  // namespace experimental
-}  // namespace grpc_event_engine
-
-int main(int argc, char** argv) {
-  testing::InitGoogleTest(&argc, argv);
-  SetEventEngineFactory([]() {
-    return absl::make_unique<
-        grpc_event_engine::experimental::ThreadedFuzzingEventEngine>();
-  });
-  return RUN_ALL_TESTS();
-}
diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json
index a6fc3a4..4e25b99 100644
--- a/tools/run_tests/generated/tests.json
+++ b/tools/run_tests/generated/tests.json
@@ -4276,30 +4276,6 @@
     "flaky": false,
     "gtest": true,
     "language": "c++",
-    "name": "fuzzing_event_engine_test",
-    "platforms": [
-      "linux",
-      "mac",
-      "posix",
-      "windows"
-    ],
-    "uses_polling": false
-  },
-  {
-    "args": [],
-    "benchmark": false,
-    "ci_platforms": [
-      "linux",
-      "mac",
-      "posix",
-      "windows"
-    ],
-    "cpu_cost": 1.0,
-    "exclude_configs": [],
-    "exclude_iomgrs": [],
-    "flaky": false,
-    "gtest": true,
-    "language": "c++",
     "name": "generic_end2end_test",
     "platforms": [
       "linux",