@@ -792,3 +792,94 @@ TEST(ProtocolTypesTest, ReadMemoryResponseBody) {
792
792
ASSERT_THAT_EXPECTED (expected, llvm::Succeeded ());
793
793
EXPECT_EQ (pp (*expected), pp (response));
794
794
}
795
+
796
+ TEST (ProtocolTypesTest, Modules) {
797
+ Module module ;
798
+ module .id = " AC805E8E-B6A4-CD92-4B05-5CFA7CE24AE8-8926C776" ;
799
+ module .name = " libm.so.6" ;
800
+ module .path = " /some/path/to/libm.so.6" ;
801
+ module .isOptimized = false ;
802
+ module .isUserCode = true ;
803
+ module .version = " 0.0.1" ;
804
+ module .symbolStatus = " Symbol not found." ;
805
+ module .symbolFilePath = " /some/file/path/to/the/symbol/module" ;
806
+ module .dateTimeStamp = " 2020-12-09T16:09:53+00:00" ;
807
+ module .addressRange = " 0xcafeface" ;
808
+ module .debugInfoSize = " 1.2MB" ;
809
+
810
+ Expected<json::Value> expected = json::parse (
811
+ R"( {
812
+ "id" : "AC805E8E-B6A4-CD92-4B05-5CFA7CE24AE8-8926C776",
813
+ "name": "libm.so.6",
814
+ "path": "/some/path/to/libm.so.6",
815
+ "isOptimized": false,
816
+ "isUserCode": true,
817
+ "version": "0.0.1",
818
+ "symbolStatus": "Symbol not found.",
819
+ "symbolFilePath": "/some/file/path/to/the/symbol/module",
820
+ "dateTimeStamp": "2020-12-09T16:09:53+00:00",
821
+ "addressRange": "0xcafeface",
822
+ "debugInfoSize": "1.2MB" })" );
823
+ ASSERT_THAT_EXPECTED (expected, llvm::Succeeded ());
824
+ EXPECT_EQ (pp (*expected), pp (module ));
825
+
826
+ // Test without optional values.
827
+ module .path .clear ();
828
+ module .isOptimized .reset ();
829
+ module .isUserCode .reset ();
830
+ module .version .clear ();
831
+ module .symbolStatus .clear ();
832
+ module .symbolFilePath .clear ();
833
+ module .dateTimeStamp .clear ();
834
+ module .addressRange .clear ();
835
+ module .debugInfoSize .clear ();
836
+ EXPECT_NE (pp (*expected), pp (module ));
837
+
838
+ Expected<json::Value> expected_no_opt = json::parse (
839
+ R"( {
840
+ "id" : "AC805E8E-B6A4-CD92-4B05-5CFA7CE24AE8-8926C776",
841
+ "name": "libm.so.6"})" );
842
+ ASSERT_THAT_EXPECTED (expected_no_opt, llvm::Succeeded ());
843
+ EXPECT_EQ (pp (*expected_no_opt), pp (module ));
844
+ }
845
+
846
+ TEST (ProtocolTypesTest, ModulesArguments) {
847
+ ModulesArguments args;
848
+
849
+ llvm::Expected<ModulesArguments> expected = parse<ModulesArguments>(R"( {})" );
850
+ ASSERT_THAT_EXPECTED (expected, llvm::Succeeded ());
851
+ EXPECT_EQ (args.startModule , expected->startModule );
852
+ EXPECT_EQ (args.moduleCount , expected->moduleCount );
853
+
854
+ // Non Default values.
855
+ args.startModule = 1 ;
856
+ args.moduleCount = 2 ;
857
+ llvm::Expected<ModulesArguments> expected_no_default =
858
+ parse<ModulesArguments>(R"( { "startModule": 1, "moduleCount": 2})" );
859
+ ASSERT_THAT_EXPECTED (expected_no_default, llvm::Succeeded ());
860
+ EXPECT_EQ (args.startModule , expected_no_default->startModule );
861
+ EXPECT_EQ (args.moduleCount , expected_no_default->moduleCount );
862
+ }
863
+
864
+ TEST (ProtocolTypesTest, ModulesResponseBody) {
865
+ ModulesResponseBody response;
866
+ Module module1;
867
+ module1.id = " first id" ;
868
+ module1.name = " first name" ;
869
+
870
+ Module module2;
871
+ module2.id = " second id" ;
872
+ module2.name = " second name" ;
873
+ response.modules = {std::move (module1), std::move (module2)};
874
+ response.totalModules = 2 ;
875
+
876
+ Expected<json::Value> expected = json::parse (
877
+ R"( {
878
+ "modules": [
879
+ { "id": "first id", "name": "first name"},
880
+ { "id": "second id", "name": "second name"}
881
+ ],
882
+ "totalModules": 2 })" );
883
+ ASSERT_THAT_EXPECTED (expected, llvm::Succeeded ());
884
+ EXPECT_EQ (pp (*expected), pp (response));
885
+ }
0 commit comments