blob: 332a3a06ea02c5424475aed0172326681ad07946 [file] [log] [blame]
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 {
};