From 131a6a646b560c54a7e721cb2fe2639c851d48e8 Mon Sep 17 00:00:00 2001 From: Snaipe Date: Mon, 11 Jan 2016 12:20:38 +0100 Subject: [PATCH] Revamped the protocol for test nesting and phase grouping --- src/protocol/criterion.pb.c | 65 ++++++---------- src/protocol/criterion.pb.h | 143 +++++++++++++++-------------------- src/protocol/criterion.proto | 62 +++++++-------- 3 files changed, 116 insertions(+), 154 deletions(-) diff --git a/src/protocol/criterion.pb.c b/src/protocol/criterion.pb.c index 3bfbdba..aeb2176 100644 --- a/src/protocol/criterion.pb.c +++ b/src/protocol/criterion.pb.c @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.3.5-dev at Sun Dec 13 17:07:36 2015. */ +/* Generated by nanopb-0.3.5-dev at Mon Jan 11 00:41:07 2016. */ #include "criterion.pb.h" @@ -10,41 +10,23 @@ const int32_t criterion_protocol_msg_version_default = 1; -const pb_field_t criterion_protocol_birth_fields[1] = { +const pb_field_t criterion_protocol_birth_fields[2] = { + PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, criterion_protocol_birth, timestamp, timestamp, 0), PB_LAST_FIELD }; -const pb_field_t criterion_protocol_pre_init_fields[1] = { +const pb_field_t criterion_protocol_phase_fields[5] = { + PB_FIELD( 1, UENUM , REQUIRED, STATIC , FIRST, criterion_protocol_phase, phase, phase, 0), + PB_FIELD( 2, STRING , REQUIRED, POINTER , OTHER, criterion_protocol_phase, name, phase, 0), + PB_FIELD( 3, INT64 , OPTIONAL, STATIC , OTHER, criterion_protocol_phase, timestamp, name, 0), + PB_FIELD( 4, STRING , OPTIONAL, POINTER , OTHER, criterion_protocol_phase, message, timestamp, 0), PB_LAST_FIELD }; -const pb_field_t criterion_protocol_pre_test_fields[2] = { - PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, criterion_protocol_pre_test, timestamp, timestamp, 0), - PB_LAST_FIELD -}; - -const pb_field_t criterion_protocol_post_test_fields[2] = { - PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, criterion_protocol_post_test, timestamp, timestamp, 0), - PB_LAST_FIELD -}; - -const pb_field_t criterion_protocol_post_fini_fields[1] = { - PB_LAST_FIELD -}; - -const pb_field_t criterion_protocol_pre_subtest_fields[2] = { - PB_FIELD( 1, STRING , REQUIRED, CALLBACK, FIRST, criterion_protocol_pre_subtest, id, id, 0), - PB_LAST_FIELD -}; - -const pb_field_t criterion_protocol_post_subtest_fields[2] = { - PB_FIELD( 1, STRING , REQUIRED, CALLBACK, FIRST, criterion_protocol_post_subtest, id, id, 0), - PB_LAST_FIELD -}; - -const pb_field_t criterion_protocol_death_fields[3] = { - PB_FIELD( 1, UENUM , OPTIONAL, STATIC , FIRST, criterion_protocol_death, result, result, 0), +const pb_field_t criterion_protocol_death_fields[4] = { + PB_FIELD( 1, UENUM , REQUIRED, STATIC , FIRST, criterion_protocol_death, result, result, 0), PB_FIELD( 2, INT64 , OPTIONAL, STATIC , OTHER, criterion_protocol_death, status, result, 0), + PB_FIELD( 3, INT64 , OPTIONAL, STATIC , OTHER, criterion_protocol_death, timestamp, status, 0), PB_LAST_FIELD }; @@ -63,17 +45,18 @@ const pb_field_t criterion_protocol_log_fields[4] = { PB_LAST_FIELD }; -const pb_field_t criterion_protocol_submessage_fields[11] = { +const pb_field_t criterion_protocol_ack_fields[3] = { + PB_FIELD( 1, UENUM , REQUIRED, STATIC , FIRST, criterion_protocol_ack, status_code, status_code, 0), + PB_FIELD( 2, STRING , OPTIONAL, POINTER , OTHER, criterion_protocol_ack, message, status_code, 0), + PB_LAST_FIELD +}; + +const pb_field_t criterion_protocol_submessage_fields[6] = { PB_ONEOF_FIELD(value, 1, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, birth, birth, &criterion_protocol_birth_fields), - PB_ONEOF_FIELD(value, 2, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, pre_init, pre_init, &criterion_protocol_pre_init_fields), - PB_ONEOF_FIELD(value, 3, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, pre_test, pre_test, &criterion_protocol_pre_test_fields), - PB_ONEOF_FIELD(value, 4, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, post_test, post_test, &criterion_protocol_post_test_fields), - PB_ONEOF_FIELD(value, 5, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, post_fini, post_fini, &criterion_protocol_post_fini_fields), - PB_ONEOF_FIELD(value, 6, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, death, death, &criterion_protocol_death_fields), - PB_ONEOF_FIELD(value, 7, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, message, message, &criterion_protocol_log_fields), - PB_ONEOF_FIELD(value, 8, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, assert, assert, &criterion_protocol_assert_fields), - PB_ONEOF_FIELD(value, 9, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, pre_subtest, pre_subtest, &criterion_protocol_pre_subtest_fields), - PB_ONEOF_FIELD(value, 10, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, post_subtest, post_subtest, &criterion_protocol_post_subtest_fields), + PB_ONEOF_FIELD(value, 2, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, phase, phase, &criterion_protocol_phase_fields), + PB_ONEOF_FIELD(value, 3, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, death, death, &criterion_protocol_death_fields), + PB_ONEOF_FIELD(value, 4, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, message, message, &criterion_protocol_log_fields), + PB_ONEOF_FIELD(value, 5, MESSAGE , ONEOF, STATIC , FIRST, criterion_protocol_submessage, assert, assert, &criterion_protocol_assert_fields), PB_LAST_FIELD }; @@ -94,7 +77,7 @@ const pb_field_t criterion_protocol_msg_fields[4] = { * numbers or field sizes that are larger than what can fit in 8 or 16 bit * field descriptors. */ -PB_STATIC_ASSERT((pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_test) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 65536 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 65536 && pb_membersize(criterion_protocol_msg, data) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_criterion_protocol_birth_criterion_protocol_pre_init_criterion_protocol_pre_test_criterion_protocol_post_test_criterion_protocol_post_fini_criterion_protocol_pre_subtest_criterion_protocol_post_subtest_criterion_protocol_death_criterion_protocol_assert_criterion_protocol_log_criterion_protocol_submessage_criterion_protocol_msg) +PB_STATIC_ASSERT((pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.phase) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.phase) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.phase) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_submessage, value.birth) < 65536 && pb_membersize(criterion_protocol_submessage, value.phase) < 65536 && pb_membersize(criterion_protocol_submessage, value.death) < 65536 && pb_membersize(criterion_protocol_submessage, value.message) < 65536 && pb_membersize(criterion_protocol_submessage, value.assert) < 65536 && pb_membersize(criterion_protocol_msg, data) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_criterion_protocol_birth_criterion_protocol_phase_criterion_protocol_death_criterion_protocol_assert_criterion_protocol_log_criterion_protocol_ack_criterion_protocol_submessage_criterion_protocol_msg) #endif #if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) @@ -105,7 +88,7 @@ PB_STATIC_ASSERT((pb_membersize(criterion_protocol_submessage, value.birth) < 65 * numbers or field sizes that are larger than what can fit in the default * 8 bit descriptors. */ -PB_STATIC_ASSERT((pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_init) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_test) < 256 && pb_membersize(criterion_protocol_submessage, value.post_fini) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.pre_subtest) < 256 && pb_membersize(criterion_protocol_submessage, value.post_subtest) < 256 && pb_membersize(criterion_protocol_msg, data) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_criterion_protocol_birth_criterion_protocol_pre_init_criterion_protocol_pre_test_criterion_protocol_post_test_criterion_protocol_post_fini_criterion_protocol_pre_subtest_criterion_protocol_post_subtest_criterion_protocol_death_criterion_protocol_assert_criterion_protocol_log_criterion_protocol_submessage_criterion_protocol_msg) +PB_STATIC_ASSERT((pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.phase) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.phase) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.phase) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_submessage, value.birth) < 256 && pb_membersize(criterion_protocol_submessage, value.phase) < 256 && pb_membersize(criterion_protocol_submessage, value.death) < 256 && pb_membersize(criterion_protocol_submessage, value.message) < 256 && pb_membersize(criterion_protocol_submessage, value.assert) < 256 && pb_membersize(criterion_protocol_msg, data) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_criterion_protocol_birth_criterion_protocol_phase_criterion_protocol_death_criterion_protocol_assert_criterion_protocol_log_criterion_protocol_ack_criterion_protocol_submessage_criterion_protocol_msg) #endif diff --git a/src/protocol/criterion.pb.h b/src/protocol/criterion.pb.h index fea9d14..301296d 100644 --- a/src/protocol/criterion.pb.h +++ b/src/protocol/criterion.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.3.5-dev at Sun Dec 13 17:07:36 2015. */ +/* Generated by nanopb-0.3.5-dev at Mon Jan 11 00:41:07 2016. */ #ifndef PB_CRITERION_PB_H_INCLUDED #define PB_CRITERION_PB_H_INCLUDED @@ -14,33 +14,30 @@ extern "C" { #endif /* Enum definitions */ +typedef enum _criterion_protocol_phase_kind { + criterion_protocol_phase_kind_SETUP = 1, + criterion_protocol_phase_kind_MAIN = 2, + criterion_protocol_phase_kind_TEARDOWN = 3, + criterion_protocol_phase_kind_END = 4, + criterion_protocol_phase_kind_ABORT = 5, + criterion_protocol_phase_kind_TIMEOUT = 6 +} criterion_protocol_phase_kind; + typedef enum _criterion_protocol_death_result_type { - criterion_protocol_death_result_type_NORMAL = 0, - criterion_protocol_death_result_type_CRASH = 1, - criterion_protocol_death_result_type_TIMEOUT = 2, - criterion_protocol_death_result_type_ABORT = 3 + criterion_protocol_death_result_type_NORMAL = 1, + criterion_protocol_death_result_type_CRASH = 2 } criterion_protocol_death_result_type; +typedef enum _criterion_protocol_ack_status { + criterion_protocol_ack_status_OK = 0, + criterion_protocol_ack_status_ERROR = 1 +} criterion_protocol_ack_status; + /* Struct definitions */ -typedef struct _criterion_protocol_birth { - uint8_t dummy_field; -} criterion_protocol_birth; - -typedef struct _criterion_protocol_post_fini { - uint8_t dummy_field; -} criterion_protocol_post_fini; - -typedef struct _criterion_protocol_post_subtest { - pb_callback_t id; -} criterion_protocol_post_subtest; - -typedef struct _criterion_protocol_pre_init { - uint8_t dummy_field; -} criterion_protocol_pre_init; - -typedef struct _criterion_protocol_pre_subtest { - pb_callback_t id; -} criterion_protocol_pre_subtest; +typedef struct _criterion_protocol_ack { + criterion_protocol_ack_status status_code; + char *message; +} criterion_protocol_ack; typedef struct _criterion_protocol_assert { char *message; @@ -50,11 +47,17 @@ typedef struct _criterion_protocol_assert { int64_t line; } criterion_protocol_assert; +typedef struct _criterion_protocol_birth { + bool has_timestamp; + int64_t timestamp; +} criterion_protocol_birth; + typedef struct _criterion_protocol_death { - bool has_result; criterion_protocol_death_result_type result; bool has_status; int64_t status; + bool has_timestamp; + int64_t timestamp; } criterion_protocol_death; typedef struct _criterion_protocol_log { @@ -64,29 +67,22 @@ typedef struct _criterion_protocol_log { int32_t prefix; } criterion_protocol_log; -typedef struct _criterion_protocol_post_test { +typedef struct _criterion_protocol_phase { + criterion_protocol_phase_kind phase; + char *name; bool has_timestamp; int64_t timestamp; -} criterion_protocol_post_test; - -typedef struct _criterion_protocol_pre_test { - bool has_timestamp; - int64_t timestamp; -} criterion_protocol_pre_test; + char *message; +} criterion_protocol_phase; typedef struct _criterion_protocol_submessage { pb_size_t which_value; union { criterion_protocol_birth birth; - criterion_protocol_pre_init pre_init; - criterion_protocol_pre_test pre_test; - criterion_protocol_post_test post_test; - criterion_protocol_post_fini post_fini; + criterion_protocol_phase phase; criterion_protocol_death death; criterion_protocol_log message; criterion_protocol_assert assert; - criterion_protocol_pre_subtest pre_subtest; - criterion_protocol_post_subtest post_subtest; } value; } criterion_protocol_submessage; @@ -103,80 +99,63 @@ typedef struct _criterion_protocol_msg { extern const int32_t criterion_protocol_msg_version_default; /* Initializer values for message structs */ -#define criterion_protocol_birth_init_default {0} -#define criterion_protocol_pre_init_init_default {0} -#define criterion_protocol_pre_test_init_default {false, 0} -#define criterion_protocol_post_test_init_default {false, 0} -#define criterion_protocol_post_fini_init_default {0} -#define criterion_protocol_pre_subtest_init_default {{{NULL}, NULL}} -#define criterion_protocol_post_subtest_init_default {{{NULL}, NULL}} -#define criterion_protocol_death_init_default {false, (criterion_protocol_death_result_type)0, false, 0} +#define criterion_protocol_birth_init_default {false, 0} +#define criterion_protocol_phase_init_default {(criterion_protocol_phase_kind)0, NULL, false, 0, NULL} +#define criterion_protocol_death_init_default {(criterion_protocol_death_result_type)0, false, 0, false, 0} #define criterion_protocol_assert_init_default {NULL, 0, NULL, false, 0} #define criterion_protocol_log_init_default {0, NULL, false, 0} +#define criterion_protocol_ack_init_default {(criterion_protocol_ack_status)0, NULL} #define criterion_protocol_submessage_init_default {0, {criterion_protocol_birth_init_default}} #define criterion_protocol_msg_init_default {1, 0, {0}, criterion_protocol_submessage_init_default} -#define criterion_protocol_birth_init_zero {0} -#define criterion_protocol_pre_init_init_zero {0} -#define criterion_protocol_pre_test_init_zero {false, 0} -#define criterion_protocol_post_test_init_zero {false, 0} -#define criterion_protocol_post_fini_init_zero {0} -#define criterion_protocol_pre_subtest_init_zero {{{NULL}, NULL}} -#define criterion_protocol_post_subtest_init_zero {{{NULL}, NULL}} -#define criterion_protocol_death_init_zero {false, (criterion_protocol_death_result_type)0, false, 0} +#define criterion_protocol_birth_init_zero {false, 0} +#define criterion_protocol_phase_init_zero {(criterion_protocol_phase_kind)0, NULL, false, 0, NULL} +#define criterion_protocol_death_init_zero {(criterion_protocol_death_result_type)0, false, 0, false, 0} #define criterion_protocol_assert_init_zero {NULL, 0, NULL, false, 0} #define criterion_protocol_log_init_zero {0, NULL, false, 0} +#define criterion_protocol_ack_init_zero {(criterion_protocol_ack_status)0, NULL} #define criterion_protocol_submessage_init_zero {0, {criterion_protocol_birth_init_zero}} #define criterion_protocol_msg_init_zero {0, 0, {0}, criterion_protocol_submessage_init_zero} /* Field tags (for use in manual encoding/decoding) */ -#define criterion_protocol_post_subtest_id_tag 1 -#define criterion_protocol_pre_subtest_id_tag 1 +#define criterion_protocol_ack_status_code_tag 1 +#define criterion_protocol_ack_message_tag 2 #define criterion_protocol_assert_message_tag 1 #define criterion_protocol_assert_passed_tag 2 #define criterion_protocol_assert_file_tag 3 #define criterion_protocol_assert_line_tag 4 +#define criterion_protocol_birth_timestamp_tag 1 #define criterion_protocol_death_result_tag 1 #define criterion_protocol_death_status_tag 2 +#define criterion_protocol_death_timestamp_tag 3 #define criterion_protocol_log_severity_tag 1 #define criterion_protocol_log_message_tag 2 #define criterion_protocol_log_prefix_tag 3 -#define criterion_protocol_post_test_timestamp_tag 1 -#define criterion_protocol_pre_test_timestamp_tag 1 +#define criterion_protocol_phase_phase_tag 1 +#define criterion_protocol_phase_name_tag 2 +#define criterion_protocol_phase_timestamp_tag 3 +#define criterion_protocol_phase_message_tag 4 #define criterion_protocol_submessage_birth_tag 1 -#define criterion_protocol_submessage_pre_init_tag 2 -#define criterion_protocol_submessage_pre_test_tag 3 -#define criterion_protocol_submessage_post_test_tag 4 -#define criterion_protocol_submessage_post_fini_tag 5 -#define criterion_protocol_submessage_death_tag 6 -#define criterion_protocol_submessage_message_tag 7 -#define criterion_protocol_submessage_assert_tag 8 -#define criterion_protocol_submessage_pre_subtest_tag 9 -#define criterion_protocol_submessage_post_subtest_tag 10 +#define criterion_protocol_submessage_phase_tag 2 +#define criterion_protocol_submessage_death_tag 3 +#define criterion_protocol_submessage_message_tag 4 +#define criterion_protocol_submessage_assert_tag 5 #define criterion_protocol_msg_pid_tag 2 #define criterion_protocol_msg_version_tag 1 #define criterion_protocol_msg_data_tag 16 /* Struct field encoding specification for nanopb */ -extern const pb_field_t criterion_protocol_birth_fields[1]; -extern const pb_field_t criterion_protocol_pre_init_fields[1]; -extern const pb_field_t criterion_protocol_pre_test_fields[2]; -extern const pb_field_t criterion_protocol_post_test_fields[2]; -extern const pb_field_t criterion_protocol_post_fini_fields[1]; -extern const pb_field_t criterion_protocol_pre_subtest_fields[2]; -extern const pb_field_t criterion_protocol_post_subtest_fields[2]; -extern const pb_field_t criterion_protocol_death_fields[3]; +extern const pb_field_t criterion_protocol_birth_fields[2]; +extern const pb_field_t criterion_protocol_phase_fields[5]; +extern const pb_field_t criterion_protocol_death_fields[4]; extern const pb_field_t criterion_protocol_assert_fields[5]; extern const pb_field_t criterion_protocol_log_fields[4]; -extern const pb_field_t criterion_protocol_submessage_fields[11]; +extern const pb_field_t criterion_protocol_ack_fields[3]; +extern const pb_field_t criterion_protocol_submessage_fields[6]; extern const pb_field_t criterion_protocol_msg_fields[4]; /* Maximum encoded size of messages (where known) */ -#define criterion_protocol_birth_size 0 -#define criterion_protocol_pre_init_size 0 -#define criterion_protocol_pre_test_size 11 -#define criterion_protocol_post_test_size 11 -#define criterion_protocol_post_fini_size 0 -#define criterion_protocol_death_size 13 +#define criterion_protocol_birth_size 11 +#define criterion_protocol_death_size 24 #define criterion_protocol_msg_size (29 + criterion_protocol_submessage_size) /* Message IDs (where set with "msgid" option) */ diff --git a/src/protocol/criterion.proto b/src/protocol/criterion.proto index 2eb3ce9..2ca8a9d 100644 --- a/src/protocol/criterion.proto +++ b/src/protocol/criterion.proto @@ -1,41 +1,36 @@ package criterion.protocol; - message birth { -} - -message pre_init { -} - -message pre_test { optional int64 timestamp = 1; } -message post_test { - optional int64 timestamp = 1; -} +message phase { -message post_fini { -} + enum kind { + SETUP = 1; + MAIN = 2; + TEARDOWN = 3; + END = 4; -message pre_subtest { - required string id = 1; -} + ABORT = 5; + TIMEOUT = 6; + } -message post_subtest { - required string id = 1; + required kind phase = 1; + required string name = 2; + optional int64 timestamp = 3; + optional string message = 4; } message death { enum result_type { - NORMAL = 0; - CRASH = 1; - TIMEOUT = 2; - ABORT = 3; + NORMAL = 1; + CRASH = 2; } - optional result_type result = 1; + required result_type result = 1; optional int64 status = 2; + optional int64 timestamp = 3; } message assert { @@ -51,20 +46,25 @@ message log { optional int32 prefix = 3; } +message ack { + enum status { + OK = 0; + ERROR = 1; + } + + required status status_code = 1; + optional string message = 2; +} + message submessage { oneof value { criterion.protocol.birth birth = 1; - criterion.protocol.pre_init pre_init = 2; - criterion.protocol.pre_test pre_test = 3; - criterion.protocol.post_test post_test = 4; - criterion.protocol.post_fini post_fini = 5; - criterion.protocol.death death = 6; + criterion.protocol.phase phase = 2; + criterion.protocol.death death = 3; - criterion.protocol.log message = 7; - criterion.protocol.assert assert = 8; - criterion.protocol.pre_subtest pre_subtest = 9; - criterion.protocol.post_subtest post_subtest = 10; + criterion.protocol.log message = 4; + criterion.protocol.assert assert = 5; } }