diff options
Diffstat (limited to 'spec/rtems/basedefs/val/basedefs.yml')
-rw-r--r-- | spec/rtems/basedefs/val/basedefs.yml | 90 |
1 files changed, 17 insertions, 73 deletions
diff --git a/spec/rtems/basedefs/val/basedefs.yml b/spec/rtems/basedefs/val/basedefs.yml index 617920ea..d0c8baf2 100644 --- a/spec/rtems/basedefs/val/basedefs.yml +++ b/spec/rtems/basedefs/val/basedefs.yml @@ -1030,82 +1030,20 @@ test-actions: uid: ../req/string-0 links: [] - action-brief: | - Use the ${../if/symbol-name:/name} macro on examples. + Use the ${../if/symbol-name:/name} macro with an example object. action-code: | - const int symbol_name = 321; - int symbol_name_0_var; - int symbol_name_1_var; - int prefixed_symbol_name_var; - int prefixed_symbol_id_var; - int prefixed_upper_symbol_name_var; - symbol_name_0_var = RTEMS_SYMBOL_NAME( symbol_name ); - symbol_name_1_var = RTEMS_SYMBOL_NAME( SYMBOL_NAME ); - prefixed_symbol_name_var = basedefs_use_prefixed_symbol_name(); - prefixed_symbol_id_var = basedefs_use_prefixed_symbol_id(); - prefixed_upper_symbol_name_var = basedefs_use_prefixed_upper_symbol_name(); + /* Nothing to do */ checks: - brief: | - Case ``__USER_LABEL_PREFIX__`` undefined. - Check that the ${../if/symbol-name:/name} macro - without any pre-processor substitutions applicable results - in its literal argument. + Check that the ${../if/symbol-name:/name} macro expands to the expected + symbol name. code: | - T_step_eq_int( ${step}, symbol_name_0_var, 321 ); + T_step_eq_ptr( ${step}, &global_object, &address_of_global_object ); links: - role: validation - uid: ../req/symbol-name-3 - - brief: | - Case ``__USER_LABEL_PREFIX__`` undefined. - Check that the ${../if/symbol-name:/name} macro - applies pre-processor substitutions to its argument - and its result. - code: | - T_step_eq_int( ${step}, symbol_name_1_var, 321 ); - links: - - role: validation - uid: ../req/symbol-name-0 + uid: ../req/symbol-name - role: validation - uid: ../req/symbol-name-3 - - role: validation - uid: ../req/symbol-name-5 - - brief: | - Case ``__USER_LABEL_PREFIX__`` defined. - Check that the ${../if/symbol-name:/name} macro - without any pre-processor substitutions applicable results - in the literal prefix and argument. - code: | - T_step_eq_int( ${step}, prefixed_symbol_name_var, 124 ); - links: - - role: validation - uid: ../req/symbol-name-1 - - role: validation - uid: ../req/symbol-name-2 - - brief: | - Case ``__USER_LABEL_PREFIX__`` defined. - Check that the ${../if/symbol-name:/name} macro - applies pre-processor substitutions to its argument. - code: | - T_step_eq_int( ${step}, prefixed_upper_symbol_name_var, 125 ); - links: - - role: validation - uid: ../req/symbol-name-1 - - role: validation - uid: ../req/symbol-name-2 - - role: validation - uid: ../req/symbol-name-6 - - brief: | - Case ``__USER_LABEL_PREFIX__`` defined. - Check that the ${../if/symbol-name:/name} macro - applies pre-processor substitutions to its result. - code: | - T_step_eq_int( ${step}, prefixed_symbol_id_var, 126 ); - links: - - role: validation - uid: ../req/symbol-name-4 - - role: validation - uid: ../req/symbol-name-5 - - role: validation - uid: ../req/symbol-name-6 + uid: ../req/symbol-name-expand links: [] - action-brief: | Invoke the ${../if/true:/name} macro on an example. @@ -1441,8 +1379,6 @@ test-context-support: null test-description: null test-header: null test-includes: -- stddef.h -- stdarg.h - rtems.h test-local-includes: - tc-basedefs-pendant.h @@ -1461,11 +1397,19 @@ test-support: | #define SECTION_NAME ".rtemsroset.test" #define STATIC_ASSERT_COND 0 + #define STRING_PREFIX str - #define SYMBOL_NAME SYMBOL_name - #define SYMBOL_name symbol_name + #define SYMBOL_NAME global_object #define _TO_STR2( _text ) #_text #define _TO_STR( _text ) _TO_STR2( _text ) + int global_object; + + extern int address_of_global_object; + + __asm__( + "\n\t.set " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( address_of_global_object ) ) + ", " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( SYMBOL_NAME ) ) "\n" + ); + /* * For some reasons - which I fail to fully understand - _TO_STR() * seems to remove spaces around `()` at times and at other times |