# These are the available tests for generators
#
# General format is:
# <generator>
#    <input_file>
#      <output_file> : <golden_path>
#
# Where
#   - generator is the type of generator to use
#   - input_file is the input IDL
#   - output_file/golden_path are the expected output file names
#     and the expected content for those output files.
java-jni:
    inputs/simple_attribute.matter:
        jni/MyClusterClient-ReadImpl.cpp: outputs/simple_attribute/jni/MyClusterClient-ReadImpl.cpp
        jni/MyClusterClient-InvokeSubscribeImpl.cpp: outputs/simple_attribute/jni/MyClusterClient-InvokeSubscribeImpl.cpp
        jni/CHIPCallbackTypes.h: outputs/simple_attribute/jni/CHIPCallbackTypes.h
        jni/CHIPReadCallbacks.h: outputs/simple_attribute/jni/CHIPReadReadCallbacks.h

    inputs/global_struct_attribute.matter:
        jni/DemoClusterClient-ReadImpl.cpp: outputs/global_struct_attribute/jni/DemoClusterClient-ReadImpl.cpp
        jni/DemoClusterClient-InvokeSubscribeImpl.cpp: outputs/global_struct_attribute/jni/DemoClusterClient-InvokeSubscribeImpl.cpp
        jni/CHIPCallbackTypes.h: outputs/global_struct_attribute/jni/CHIPCallbackTypes.h
        jni/CHIPReadCallbacks.h: outputs/global_struct_attribute/jni/CHIPReadReadCallbacks.h

    inputs/cluster_struct_attribute.matter:
        jni/DemoClusterClient-ReadImpl.cpp: outputs/cluster_struct_attribute/jni/DemoClusterClient-ReadImpl.cpp
        jni/DemoClusterClient-InvokeSubscribeImpl.cpp: outputs/cluster_struct_attribute/jni/DemoClusterClient-InvokeSubscribeImpl.cpp
        jni/CHIPCallbackTypes.h: outputs/cluster_struct_attribute/jni/CHIPCallbackTypes.h
        jni/CHIPReadCallbacks.h: outputs/cluster_struct_attribute/jni/CHIPReadReadCallbacks.h

    inputs/several_clusters.matter:
        jni/FirstClient-ReadImpl.cpp: outputs/several_clusters/jni/FirstClient-ReadImpl.cpp
        jni/SecondClient-ReadImpl.cpp: outputs/several_clusters/jni/SecondClient-ReadImpl.cpp
        jni/ThirdClient-ReadImpl.cpp: outputs/several_clusters/jni/ThirdClient-ReadImpl.cpp
        jni/FirstClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/FirstClient-InvokeSubscribeImpl.cpp
        jni/SecondClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/SecondClient-InvokeSubscribeImpl.cpp
        jni/ThirdClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/ThirdClient-InvokeSubscribeImpl.cpp
        jni/CHIPCallbackTypes.h: outputs/several_clusters/jni/CHIPCallbackTypes.h
        jni/CHIPReadCallbacks.h: outputs/several_clusters/jni/CHIPReadReadCallbacks.h

    inputs/optional_argument.matter:
        jni/MyClusterClient-ReadImpl.cpp: outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp
        jni/MyClusterClient-InvokeSubscribeImpl.cpp: outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp
        jni/CHIPCallbackTypes.h: outputs/optional_argument/jni/CHIPCallbackTypes.h
        jni/CHIPReadCallbacks.h: outputs/optional_argument/jni/CHIPReadReadCallbacks.h

java-class:
    inputs/several_clusters.matter:
        java/chip/devicecontroller/ClusterWriteMapping.java: outputs/several_clusters/java/ClusterWriteMapping.java
        java/chip/devicecontroller/ClusterReadMapping.java: outputs/several_clusters/java/ClusterReadMapping.java

bridge:
    inputs/simple_attribute.matter:
        bridge/BridgeClustersImpl.h: outputs/simple_attribute/bridge/BridgeClustersImpl.h
        bridge/BridgeGlobalStructs.h: outputs/simple_attribute/bridge/BridgeGlobalStructs.h
        bridge/MyClusterServer.h: outputs/simple_attribute/bridge/MyClusterServer.h

    inputs/global_struct_attribute.matter:
        bridge/BridgeClustersImpl.h: outputs/global_struct_attribute/bridge/BridgeClustersImpl.h
        bridge/BridgeGlobalStructs.h: outputs/global_struct_attribute/bridge/BridgeGlobalStructs.h
        bridge/DemoClusterServer.h: outputs/global_struct_attribute/bridge/DemoClusterServer.h

    inputs/cluster_struct_attribute.matter:
        bridge/BridgeClustersImpl.h: outputs/cluster_struct_attribute/bridge/BridgeClustersImpl.h
        bridge/BridgeGlobalStructs.h: outputs/cluster_struct_attribute/bridge/BridgeGlobalStructs.h
        bridge/DemoClusterServer.h: outputs/cluster_struct_attribute/bridge/DemoClusterServer.h

    inputs/several_clusters.matter:
        bridge/BridgeClustersImpl.h: outputs/several_clusters/bridge/BridgeClustersImpl.h
        bridge/BridgeGlobalStructs.h: outputs/several_clusters/bridge/BridgeGlobalStructs.h
        bridge/FirstServer.h: outputs/several_clusters/bridge/FirstServer.h
        bridge/SecondServer.h: outputs/several_clusters/bridge/SecondServer.h
        bridge/ThirdServer.h: outputs/several_clusters/bridge/ThirdServer.h
        bridge/Third.h: outputs/several_clusters/bridge/Third.h

    inputs/cluster_with_commands.matter:
        bridge/BridgeClustersImpl.h: outputs/cluster_with_commands/bridge/BridgeClustersImpl.h
        bridge/BridgeGlobalStructs.h: outputs/cluster_with_commands/bridge/BridgeGlobalStructs.h
        bridge/OnOff.h: outputs/cluster_with_commands/bridge/OnOff.h

cpp-app:
    inputs/several_clusters.matter:
        app/PluginApplicationCallbacks.h: outputs/several_clusters/cpp-app/PluginApplicationCallbacks.h
        app/callback-stub.cpp: outputs/several_clusters/cpp-app/callback-stub.cpp

    inputs/large_all_clusters_app.matter:
        app/PluginApplicationCallbacks.h: outputs/large_all_clusters_app/cpp-app/PluginApplicationCallbacks.h
        app/callback-stub.cpp: outputs/large_all_clusters_app/cpp-app/callback-stub.cpp

    inputs/large_lighting_app.matter:
        app/PluginApplicationCallbacks.h: outputs/large_lighting_app/cpp-app/PluginApplicationCallbacks.h
        app/callback-stub.cpp: outputs/large_lighting_app/cpp-app/callback-stub.cpp

custom-example-proto:
    inputs/several_clusters.matter:
        proto/first_cluster.proto: outputs/proto/first_cluster.proto
        proto/second_cluster.proto: outputs/proto/second_cluster.proto
        proto/third_cluster.proto: outputs/proto/third_cluster.proto

    inputs/large_all_clusters_app.matter:
        proto/ota_software_update_provider_cluster.proto: outputs/proto/ota_software_update_provider_cluster.proto
