# Copyright (C) 2020 The Android Open Source Project
#
# 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.

import("../../gn/perfetto.gni")

executable("stress_test") {
  testonly = true
  sources = [ "stress_test.cc" ]
  data_deps = [
    "../../src/perfetto_cmd:perfetto",
    "../../src/traced/service:traced",
  ]
  deps = [
    ":stress_producer",
    "../..:libperfetto_client_experimental",
    "../../gn:default_deps",
    "../../include/perfetto/tracing",
    "../../protos/perfetto/trace:zero",
    "../../src/base",
    "../../src/base:test_support",
    "configs",
  ]
}

executable("stress_producer") {
  testonly = true
  sources = [ "stress_producer.cc" ]
  deps = [
    "../..:libperfetto_client_experimental",
    "../../gn:default_deps",
    "../../include/perfetto/tracing",
    "../../protos/perfetto/trace:zero",
    "../../src/base",
    "../../src/base:test_support",
  ]
}
