Home | History | Annotate | Download | only in dbus
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import("//testing/test.gni")
      6 import("//third_party/protobuf/proto_library.gni")
      7 
      8 component("dbus") {
      9   sources = [
     10     "bus.cc",
     11     "bus.h",
     12     "dbus_export.h",
     13     "dbus_statistics.cc",
     14     "dbus_statistics.h",
     15     "exported_object.cc",
     16     "exported_object.h",
     17     "file_descriptor.cc",
     18     "file_descriptor.h",
     19     "message.cc",
     20     "message.h",
     21     "object_manager.cc",
     22     "object_manager.h",
     23     "object_path.cc",
     24     "object_path.h",
     25     "object_proxy.cc",
     26     "object_proxy.h",
     27     "property.cc",
     28     "property.h",
     29     "scoped_dbus_error.cc",
     30     "scoped_dbus_error.h",
     31     "string_util.cc",
     32     "string_util.h",
     33     "util.cc",
     34     "util.h",
     35     "values_util.cc",
     36     "values_util.h",
     37   ]
     38 
     39   defines = [ "DBUS_IMPLEMENTATION" ]
     40 
     41   deps = [
     42     "//third_party/protobuf:protobuf_lite",
     43   ]
     44   public_deps = [
     45     "//base",
     46   ]
     47 
     48   public_configs = [ "//build/config/linux:dbus" ]
     49 }
     50 
     51 proto_library("test_proto") {
     52   sources = [
     53     "test_proto.proto",
     54   ]
     55 }
     56 
     57 # This target contains mocks that can be used to write unit tests without
     58 # issuing actual D-Bus calls.
     59 source_set("test_support") {
     60   testonly = true
     61   sources = [
     62     "mock_bus.cc",
     63     "mock_bus.h",
     64     "mock_exported_object.cc",
     65     "mock_exported_object.h",
     66     "mock_object_manager.cc",
     67     "mock_object_manager.h",
     68     "mock_object_proxy.cc",
     69     "mock_object_proxy.h",
     70   ]
     71 
     72   public_deps = [
     73     ":dbus",
     74   ]
     75   deps = [
     76     "//testing/gmock",
     77   ]
     78 
     79   configs += [ "//build/config/linux:dbus" ]
     80 }
     81 
     82 test("dbus_unittests") {
     83   sources = [
     84     "bus_unittest.cc",
     85     "dbus_statistics_unittest.cc",
     86     "end_to_end_async_unittest.cc",
     87     "end_to_end_sync_unittest.cc",
     88     "message_unittest.cc",
     89     "mock_unittest.cc",
     90     "object_manager_unittest.cc",
     91     "object_proxy_unittest.cc",
     92     "property_unittest.cc",
     93     "signal_sender_verification_unittest.cc",
     94     "string_util_unittest.cc",
     95     "test_service.cc",
     96     "test_service.h",
     97     "util_unittest.cc",
     98     "values_util_unittest.cc",
     99   ]
    100 
    101   deps = [
    102     ":dbus",
    103     ":test_proto",
    104     ":test_support",
    105     "//base/test:run_all_unittests",
    106     "//base/test:test_support",
    107     "//testing/gmock",
    108     "//testing/gtest",
    109     "//third_party/protobuf:protobuf_lite",
    110   ]
    111 
    112   configs += [ "//build/config/linux:dbus" ]
    113 }
    114 
    115 executable("dbus_test_server") {
    116   testonly = true
    117   sources = [
    118     "test_server.cc",
    119     "test_service.cc",
    120     "test_service.h",
    121   ]
    122 
    123   deps = [
    124     ":dbus",
    125     "//base",
    126     "//base/test:test_support",
    127     "//build/config/sanitizers:deps",
    128   ]
    129 
    130   configs += [ "//build/config/linux:dbus" ]
    131 }
    132