world_sync/scripts/m11b2b_selftest_output.txt
2026-09-20 17:16:46 +08:00

321 lines
22 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

workspace root: /d/pipeline/workspaces/0/sdlc_general
--- A1~A5: 4 个落点全部执行同一套 spec 断言 ---
== reference: /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_runtime_event.json
ok A1 json-is-object
ok A2 root-keys == {key,schema} (got ['key', 'schema'])
ok A2 key == "schema"
ok A2 schema-is-object
ok A3 no self-carried struct: summary
ok A3 no self-carried struct: fields
ok A3 no self-carried struct: indexes
ok A3 no self-carried struct: codes
ok A4 reference keys subset whitelist (extra=[])
ok A5 table non-empty
ok A5 authority_module == pbl_runtime_ext
ok A5 authority_path non-empty
ok A5 authority file exists: modules/pbl_runtime_ext/models/pbl_runtime_event.json
== reference: /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_runtime_event.json
ok A1 json-is-object
ok A2 root-keys == {key,schema} (got ['key', 'schema'])
ok A2 key == "schema"
ok A2 schema-is-object
ok A3 no self-carried struct: summary
ok A3 no self-carried struct: fields
ok A3 no self-carried struct: indexes
ok A3 no self-carried struct: codes
ok A4 reference keys subset whitelist (extra=[])
ok A5 table non-empty
ok A5 authority_module == pbl_runtime_ext
ok A5 authority_path non-empty
ok A5 authority file exists: modules/pbl_runtime_ext/models/pbl_runtime_event.json
== reference: /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_entity_state.json
ok A1 json-is-object
ok A2 root-keys == {key,schema} (got ['key', 'schema'])
ok A2 key == "schema"
ok A2 schema-is-object
ok A3 no self-carried struct: summary
ok A3 no self-carried struct: fields
ok A3 no self-carried struct: indexes
ok A3 no self-carried struct: codes
ok A4 reference keys subset whitelist (extra=[])
ok A5 table non-empty
ok A5 authority_module == pbl_runtime_ext
ok A5 authority_path non-empty
ok A5 authority file exists: modules/pbl_runtime_ext/models/pbl_entity_state.json
== reference: /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_entity_state.json
ok A1 json-is-object
ok A2 root-keys == {key,schema} (got ['key', 'schema'])
ok A2 key == "schema"
ok A2 schema-is-object
ok A3 no self-carried struct: summary
ok A3 no self-carried struct: fields
ok A3 no self-carried struct: indexes
ok A3 no self-carried struct: codes
ok A4 reference keys subset whitelist (extra=[])
ok A5 table non-empty
ok A5 authority_module == pbl_runtime_ext
ok A5 authority_path non-empty
ok A5 authority file exists: modules/pbl_runtime_ext/models/pbl_entity_state.json
--- A7: 真源与镜像 sha256 两两相同 ---
pbl_runtime_event.json
src=58b09abf9982d154554522ce41f9c1f964170b02e3266819714f69f2c1ac9c0e
dst=58b09abf9982d154554522ce41f9c1f964170b02e3266819714f69f2c1ac9c0e
ok A7 sha256 equal: pbl_runtime_event.json
pbl_entity_state.json
src=e8561399150b818918a55f41c6fefd0a7a0b01048768a2a4ab7567004a947014
dst=e8561399150b818918a55f41c6fefd0a7a0b01048768a2a4ab7567004a947014
ok A7 sha256 equal: pbl_entity_state.json
--- A6: 权威真源pbl_runtime_ext上游体检只登记不判定 ---
== authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_runtime_event.json
ok A6 root-is-object
ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary'])
ok A6 summary has exactly one record (got 1)
DEFECT A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths'])
ok A6 summary.name non-empty
ok A6 summary.primary is non-empty array
ok A6 fields non-empty
DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
ok A6[id] abstract type ('long')
ok A6[id] nullable in yes|no
DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[tenant_id] abstract type ('str')
ok A6[tenant_id] positive int length
ok A6[tenant_id] nullable in yes|no
DEFECT A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[event_uid] abstract type ('str')
ok A6[event_uid] positive int length
ok A6[event_uid] nullable in yes|no
DEFECT A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[event_code] abstract type ('str')
ok A6[event_code] positive int length
ok A6[event_code] nullable in yes|no
DEFECT A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[idem_key] abstract type ('str')
ok A6[idem_key] positive int length
ok A6[idem_key] nullable in yes|no
DEFECT A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[world_id] abstract type ('long')
ok A6[world_id] nullable in yes|no
DEFECT A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[scene_id] abstract type ('long')
ok A6[scene_id] nullable in yes|no
DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[session_id] abstract type ('long')
ok A6[session_id] nullable in yes|no
DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[entity_id] abstract type ('str')
ok A6[entity_id] positive int length
ok A6[entity_id] nullable in yes|no
DEFECT A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[actor_id] abstract type ('str')
ok A6[actor_id] positive int length
ok A6[actor_id] nullable in yes|no
DEFECT A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[event_type] abstract type ('str')
ok A6[event_type] positive int length
ok A6[event_type] nullable in yes|no
DEFECT A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
ok A6[payload] abstract type ('text')
ok A6[payload] nullable in yes|no
DEFECT A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
ok A6[payload_json] abstract type ('text')
ok A6[payload_json] nullable in yes|no
DEFECT A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[causation_id] abstract type ('str')
ok A6[causation_id] positive int length
ok A6[causation_id] nullable in yes|no
DEFECT A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[seq] abstract type ('long')
ok A6[seq] nullable in yes|no
DEFECT A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[seq_no] abstract type ('long')
ok A6[seq_no] nullable in yes|no
DEFECT A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[source] abstract type ('str')
ok A6[source] positive int length
ok A6[source] nullable in yes|no
DEFECT A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[state] abstract type ('str')
ok A6[state] positive int length
ok A6[state] nullable in yes|no
DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[state_version] abstract type ('long')
ok A6[state_version] nullable in yes|no
DEFECT A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
ok A6[tx_group] abstract type ('str')
ok A6[tx_group] positive int length
ok A6[tx_group] nullable in yes|no
DEFECT A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[broadcast] abstract type ('short')
ok A6[broadcast] nullable in yes|no
DEFECT A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[created_by] abstract type ('long')
ok A6[created_by] nullable in yes|no
DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[created_at] abstract type ('datetime')
ok A6[created_at] nullable in yes|no
DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
ok A6[updated_at] abstract type ('datetime')
ok A6[updated_at] nullable in yes|no
DEFECT A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
ok A6[occurred_at] abstract type ('datetime')
ok A6[occurred_at] nullable in yes|no
DEFECT A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[uk_event_uid] idxfields non-empty array
ok A6[uk_event_uid] idxtype unique|index
ok A6[uk_event_uid] idxfield exists in fields: tenant_id
ok A6[uk_event_uid] idxfield exists in fields: event_uid
ok A6[uk_event_uid] idxfield exists in fields: created_at
DEFECT A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[uk_tenant_idem] idxfields non-empty array
ok A6[uk_tenant_idem] idxtype unique|index
ok A6[uk_tenant_idem] idxfield exists in fields: tenant_id
ok A6[uk_tenant_idem] idxfield exists in fields: idem_key
ok A6[uk_tenant_idem] idxfield exists in fields: created_at
DEFECT A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_scene_created] idxfields non-empty array
ok A6[ix_scene_created] idxtype unique|index
ok A6[ix_scene_created] idxfield exists in fields: scene_id
ok A6[ix_scene_created] idxfield exists in fields: created_at
DEFECT A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_tenant_session_seq] idxfields non-empty array
ok A6[ix_tenant_session_seq] idxtype unique|index
ok A6[ix_tenant_session_seq] idxfield exists in fields: tenant_id
ok A6[ix_tenant_session_seq] idxfield exists in fields: session_id
ok A6[ix_tenant_session_seq] idxfield exists in fields: seq
DEFECT A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_tenant_session_seqno] idxfields non-empty array
ok A6[ix_tenant_session_seqno] idxtype unique|index
ok A6[ix_tenant_session_seqno] idxfield exists in fields: tenant_id
ok A6[ix_tenant_session_seqno] idxfield exists in fields: session_id
ok A6[ix_tenant_session_seqno] idxfield exists in fields: seq_no
DEFECT A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_tenant_world_type] idxfields non-empty array
ok A6[ix_tenant_world_type] idxtype unique|index
ok A6[ix_tenant_world_type] idxfield exists in fields: tenant_id
ok A6[ix_tenant_world_type] idxfield exists in fields: world_id
ok A6[ix_tenant_world_type] idxfield exists in fields: event_type
DEFECT A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_tx_group] idxfields non-empty array
ok A6[ix_tx_group] idxtype unique|index
ok A6[ix_tx_group] idxfield exists in fields: tx_group
DEFECT A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
ok A6[ix_created_at] idxfields non-empty array
ok A6[ix_created_at] idxtype unique|index
ok A6[ix_created_at] idxfield exists in fields: created_at
DEFECT A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield'])
ok A6 appcodes_kv cond uses parentid=
ok A6 codes.table has no dot notation
== authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_entity_state.json
ok A6 root-is-object
ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary'])
ok A6 summary has exactly one record (got 1)
DEFECT A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped'])
ok A6 summary.name non-empty
DEFECT A6 summary.primary is non-empty array
ok A6 fields non-empty
DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
ok A6[tenant_id] abstract type ('str')
ok A6[tenant_id] positive int length
ok A6[tenant_id] nullable in yes|no
DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned'])
ok A6[id] abstract type ('int')
ok A6[id] nullable in yes|no
DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
DEFECT A6[session_id] abstract type ('bigint')
ok A6[session_id] nullable in yes|no
DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
ok A6[entity_id] abstract type ('str')
ok A6[entity_id] positive int length
ok A6[entity_id] nullable in yes|no
DEFECT A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
DEFECT A6[state_json] abstract type ('json')
ok A6[state_json] nullable in yes|no
DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
DEFECT A6[state_version] abstract type ('bigint')
ok A6[state_version] nullable in yes|no
DEFECT A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
ok A6[checksum] abstract type ('str')
ok A6[checksum] positive int length
ok A6[checksum] nullable in yes|no
DEFECT A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
ok A6[updated_by] abstract type ('str')
ok A6[updated_by] positive int length
ok A6[updated_by] nullable in yes|no
DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
ok A6[created_at] abstract type ('datetime')
ok A6[created_at] nullable in yes|no
DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
ok A6[updated_at] abstract type ('datetime')
ok A6[updated_at] nullable in yes|no
DEFECT A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique'])
DEFECT A6[uk_es] idxfields non-empty array
DEFECT A6[uk_es] idxtype unique|index
DEFECT A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique'])
DEFECT A6[PRIMARY] idxfields non-empty array
DEFECT A6[PRIMARY] idxtype unique|index
judged assertions executed: 54
upstream audit checks executed: 186
UPSTREAM DEFECTS (56) -> 已登记,需冒泡 agent.pm / pbl_runtime_ext owner
* A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths'])
* A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
* A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
* A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
* A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
* A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
* A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
* A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
* A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
* A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
* A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield'])
* A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped'])
* A6 summary.primary is non-empty array
* A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
* A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned'])
* A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
* A6[session_id] abstract type ('bigint')
* A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
* A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
* A6[state_json] abstract type ('json')
* A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
* A6[state_version] abstract type ('bigint')
* A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
* A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
* A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
* A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
* A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique'])
* A6[uk_es] idxfields non-empty array
* A6[uk_es] idxtype unique|index
* A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique'])
* A6[PRIMARY] idxfields non-empty array
* A6[PRIMARY] idxtype unique|index
RESULT: PASS