flexflow / FlexFlow

FlexFlow Serve: Low-Latency, High-Performance LLM Serving
https://flexflow.readthedocs.io
Apache License 2.0
1.6k stars 219 forks source link

Unit tests in compiler using rapidcheck cannot build #1328

Open wmdi opened 4 months ago

wmdi commented 4 months ago

When I comment out lib/compilers/test/src/test_generator.h and test_machine_mapping.cc and rebuild, I will get compilation errors. Some of them are due to some later changes in other libraries, and some of them are due to missing supports of rapidcheck in utils, such as

In file included from /home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.h:18,
                 from /home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck.h:26,
                 from /home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_generator.h:6,
                 from /home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_machine_mapping.cc:2:
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp: In instantiation of ‘struct rc::gen::detail::DefaultArbitrary<std::variant<FlexFlow::Serial, FlexFlow::Parallel, FlexFlow::Node> >’:
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.hpp:22:62:   required from ‘struct rc::Arbitrary<std::variant<FlexFlow::Serial, FlexFlow::Parallel, FlexFlow::Node>, void>’
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.h:17:33:   required by substitution of ‘template<class T> decltype (rc::Arbitrary<T>::arbitrary()) rc::gen::arbitrary() [with T = std::variant<FlexFlow::Serial, FlexFlow::Parallel, FlexFlow::Node>]’
/home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_generator.h:49:63:   required from here
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp:62:38: error: static assertion failed: No Arbitrary specialization for type T
   62 |   static_assert(std::is_integral<T>::value,
      |                                      ^~~~~
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp: In instantiation of ‘struct rc::gen::detail::DefaultArbitrary<FlexFlow::Node>’:
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.hpp:22:62:   required from ‘struct rc::Arbitrary<FlexFlow::Node, void>’
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.h:17:33:   required by substitution of ‘template<class T> decltype (rc::Arbitrary<T>::arbitrary()) rc::gen::arbitrary() [with T = FlexFlow::Node]’
/home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_generator.h:76:79:   required from here
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp:62:38: error: static assertion failed: No Arbitrary specialization for type T
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp: In instantiation of ‘struct rc::gen::detail::DefaultArbitrary<FlexFlow::Serial>’:
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.hpp:22:62:   required from ‘struct rc::Arbitrary<FlexFlow::Serial, void>’
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.h:17:33:   required by substitution of ‘template<class T> decltype (rc::Arbitrary<T>::arbitrary()) rc::gen::arbitrary() [with T = FlexFlow::Serial]’
/home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_generator.h:78:48:   required from here
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp:62:38: error: static assertion failed: No Arbitrary specialization for type T
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp: In instantiation of ‘struct rc::gen::detail::DefaultArbitrary<FlexFlow::Parallel>’:
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.hpp:22:62:   required from ‘struct rc::Arbitrary<FlexFlow::Parallel, void>’
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Arbitrary.h:17:33:   required by substitution of ‘template<class T> decltype (rc::Arbitrary<T>::arbitrary()) rc::gen::arbitrary() [with T = FlexFlow::Parallel]’
/home/mengdiwu/wmdi/FlexFlow/lib/compiler/test/src/test_generator.h:90:49:   required from here
/home/mengdiwu/wmdi/FlexFlow/deps/rapidcheck/include/rapidcheck/gen/Numeric.hpp:62:38: error: static assertion failed: No Arbitrary specialization for type T

There are also test cases in test_optimal_cost.cc and test_unity_algorithm.cc not building, while I think test_machine_mapping.cc is the easiest one to start with.