#include "MCPServer.h" #include static int p=0,f=0; #define T(n) { std::cout<<" "<<#n<<"... "; } #define P() { std::cout<<"PASS\n"; ++p; } #define F(m) { std::cout<<"FAIL: "<()); C(!j["success"].get(),"f"); P();} void t3(){T(success); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get()); C(j["success"].get(),"s"); P();} void t4(){T(has_replay); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get()); C(j.contains("replay"),"r"); P();} void t5(){T(has_policy); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get()); C(j.contains("policy"),"p"); P();} void t6(){T(has_bundle); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get()); C(j.contains("publication_bundle"),"b"); P();} void t7(){T(certified_true); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get()); C(j["certified"].get(),"c"); P();} void t8(){T(deterministic); MCPServer s; auto r1=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto r2=s.handleRequest({{"jsonrpc","2.0"},{"id",2},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j1=nlohmann::json::parse(r1["result"]["content"][0]["text"].get()); auto j2=nlohmann::json::parse(r2["result"]["content"][0]["text"].get()); C(j1["publication_bundle"].dump()==j2["publication_bundle"].dump(),"d"); P();} int main(){ std::cout<<"Step 1156: whetstone_get_reference_conformance_report MCP tool\n"; t1();t2();t3();t4();t5();t6();t7();t8(); std::cout<<"\nResults: "<