Step 653: sprint 39 integration summary
This commit is contained in:
@@ -4756,4 +4756,13 @@ target_link_libraries(step652_test PRIVATE
|
||||
tree_sitter_javascript tree_sitter_typescript
|
||||
tree_sitter_java tree_sitter_rust tree_sitter_go)
|
||||
|
||||
add_executable(step653_test tests/step653_test.cpp)
|
||||
target_include_directories(step653_test PRIVATE src)
|
||||
target_link_libraries(step653_test PRIVATE
|
||||
nlohmann_json::nlohmann_json
|
||||
unofficial::tree-sitter::tree-sitter
|
||||
tree_sitter_python tree_sitter_cpp tree_sitter_elisp
|
||||
tree_sitter_javascript tree_sitter_typescript
|
||||
tree_sitter_java tree_sitter_rust tree_sitter_go)
|
||||
|
||||
# Step 12: Dear ImGui shell scaffolding created (main.cpp exists but not built due to dependencies)
|
||||
|
||||
45
editor/src/Sprint39IntegrationSummary.h
Normal file
45
editor/src/Sprint39IntegrationSummary.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
// Step 653: Sprint 39 integration + summary
|
||||
|
||||
#include "HiveMindAutoUpdateModel.h"
|
||||
#include "LanguageGeneratorPluginManifest.h"
|
||||
#include "PackageScriptGenerator.h"
|
||||
#include "Phase39aIntegration.h"
|
||||
#include "LocalTelemetryModel.h"
|
||||
|
||||
struct Sprint39IntegrationResult {
|
||||
bool selfHostingReady = false;
|
||||
bool packagingReady = false;
|
||||
bool autoUpdateReady = false;
|
||||
bool pluginReady = false;
|
||||
bool telemetryReady = false;
|
||||
bool releaseReady = false;
|
||||
};
|
||||
|
||||
class Sprint39IntegrationSummary {
|
||||
public:
|
||||
static Sprint39IntegrationResult run() {
|
||||
Sprint39IntegrationResult out;
|
||||
auto phase39a = Phase39aIntegration::run();
|
||||
out.selfHostingReady = phase39a.integrationReady;
|
||||
|
||||
auto pkg = PackageScriptGenerator::generate("whetstone", "1.0.0");
|
||||
out.packagingReady = pkg.success;
|
||||
|
||||
auto update = HiveMindAutoUpdateModel::execute({"1.0.0", "https://apiary/whetstone.AppImage", "abc"}, "abc");
|
||||
out.autoUpdateReady = update.accepted && update.hashVerified && update.restartScheduled;
|
||||
|
||||
PluginManifest manifest{"RustGen", "whetstone-plugin-rust.so", "RustGenerator", {"rust"}};
|
||||
out.pluginReady = LanguageGeneratorPluginManifest::isValid(manifest) &&
|
||||
LanguageGeneratorPluginManifest::isPluginFile(manifest.sharedObject);
|
||||
|
||||
TelemetryCounters counters;
|
||||
LocalTelemetryModel::recordSessionMinutes(&counters, 10);
|
||||
LocalTelemetryModel::recordToolCall(&counters);
|
||||
out.telemetryReady = LocalTelemetryModel::weeklyReport(counters).find("session_minutes=10") != std::string::npos;
|
||||
|
||||
out.releaseReady = out.selfHostingReady && out.packagingReady && out.autoUpdateReady &&
|
||||
out.pluginReady && out.telemetryReady;
|
||||
return out;
|
||||
}
|
||||
};
|
||||
20
editor/tests/step653_test.cpp
Normal file
20
editor/tests/step653_test.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
// Step 653: Sprint 39 integration + summary (8 tests)
|
||||
|
||||
#include "Sprint39IntegrationSummary.h"
|
||||
#include <iostream>
|
||||
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: "<<m<<"\n"; ++f; }
|
||||
#define C(c,m) if(!(c)){F(m);return;}
|
||||
|
||||
void t1(){T(self_hosting_ready);auto r=Sprint39IntegrationSummary::run();C(r.selfHostingReady,"self-host");P();}
|
||||
void t2(){T(packaging_ready);auto r=Sprint39IntegrationSummary::run();C(r.packagingReady,"packaging");P();}
|
||||
void t3(){T(auto_update_ready);auto r=Sprint39IntegrationSummary::run();C(r.autoUpdateReady,"update");P();}
|
||||
void t4(){T(plugin_ready);auto r=Sprint39IntegrationSummary::run();C(r.pluginReady,"plugin");P();}
|
||||
void t5(){T(telemetry_ready);auto r=Sprint39IntegrationSummary::run();C(r.telemetryReady,"telemetry");P();}
|
||||
void t6(){T(release_ready);auto r=Sprint39IntegrationSummary::run();C(r.releaseReady,"release");P();}
|
||||
void t7(){T(release_requires_all_subsystems);auto r=Sprint39IntegrationSummary::run();C(r.selfHostingReady&&r.packagingReady&&r.autoUpdateReady&&r.pluginReady&&r.telemetryReady,"subsystems");P();}
|
||||
void t8(){T(summary_is_deterministic);auto a=Sprint39IntegrationSummary::run();auto b=Sprint39IntegrationSummary::run();C(a.releaseReady==b.releaseReady,"determinism");P();}
|
||||
|
||||
int main(){std::cout<<"Step 653: Sprint 39 integration + summary\n";t1();t2();t3();t4();t5();t6();t7();t8();std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n";return f?1:0;}
|
||||
Reference in New Issue
Block a user