| library fidl.test.bindingsdenylist; |
| |
| // This file tests that all the bindings respect BindingsDenylist, and that the |
| // attribute works on all declaration kinds. Each binding should include the |
| // AllBindings constant and one other declaration. The associations are chosen |
| // to make this work (e.g. libfuzzer needs to have a protocol, only certain |
| // bindings emit anything for an empty service, etc.). |
| |
| [BindingsDenylist = "there_are_no_bindings_with_this_name"] |
| const uint32 AllBindings = 0; |
| |
| [BindingsDenylist = "cpp, dart, go, hlcpp, libfuzzer, llcpp, rust"] |
| bits OnlySyzkaller { |
| A = 1; |
| }; |
| |
| [BindingsDenylist = "cpp, go, hlcpp, libfuzzer, llcpp, rust, syzkaller"] |
| enum OnlyDart { |
| A = 1; |
| }; |
| |
| [BindingsDenylist = "cpp, dart, hlcpp, libfuzzer, llcpp, rust, syzkaller"] |
| struct OnlyGo { |
| }; |
| |
| [BindingsDenylist = "cpp, dart, go, hlcpp, libfuzzer, llcpp, syzkaller"] |
| table OnlyRust { |
| }; |
| |
| [BindingsDenylist = "cpp, dart, go, hlcpp, libfuzzer, rust, syzkaller"] |
| union OnlyLlcpp { |
| 1: uint32 x; |
| }; |
| |
| // TODO(fxbug.dev/72247): Libfuzzer depends on hlcpp and llcpp. A decision needs to be made on how |
| // to manage these dependencies. For now, this test does not denylist the dependencies. |
| [BindingsDenylist = "cpp, dart, go, rust, syzkaller"] |
| protocol OnlyLibfuzzerAndDeps { |
| LibfuzzerNeedsNonemptyProtocol() -> (); |
| }; |
| |
| // TODO(fxbug.dev/72247): Unified C++ bindings depends on hlcpp and llcpp. A decision needs to be |
| // made on how to manage these dependencies. For now, this test does not denylist the dependencies. |
| [BindingsDenylist = "dart, go, libfuzzer, rust, syzkaller"] |
| protocol OnlyCppAndDeps { |
| }; |
| |
| [BindingsDenylist = "cpp, dart, go, libfuzzer, llcpp, rust, syzkaller"] |
| service OnlyHlcpp { |
| }; |