On 09/24/2014 02:09 AM, Davidlohr Bueso wrote: >> +/* counters */ >> +static int ksft_pass; >> +static int ksft_fail; >> +static int ksft_xfail; >> +static int ksft_xpass; >> +static int ksft_xskip; > > unsigned int? Yes unsigned int is a better choice. > >> +static inline void ksft_inc_pass_cnt(void) { ksft_pass++; } >> +static inline void ksft_inc_fail_cnt(void) { ksft_fail++; } >> +static inline void ksft_inc_xfail_cnt(void) { ksft_xfail++; } >> +static inline void ksft_inc_xpass_cnt(void) { ksft_xpass++; } >> +static inline void ksft_inc_xskip_cnt(void) { ksft_xskip++; } > > It would probably make sense to have the counters in a structures, > something like: struct ksft_counter { ... } ksft_cnt; > > Then just pass it around the proposed functions as arguments. That also > minimizes a bit the global variables and would allow you to easily > change it in the future. How does the following look? struct ksft_count { unsigned int ksft_pass; unsigned int ksft_fail; unsigned int ksft_xfail; unsigned int ksft_xpass; unsigned int ksft_xskip; }; static ksft_count ksft_cnt; static inline void ksft_inc_pass_cnt(void) { ksft_cnt.ksft_pass++; } static inline void ksft_inc_fail_cnt(void) { ksft_cnt.ksft_fail++; } static inline void ksft_inc_xfail_cnt(void) { ksft_cnt.ksft_xfail++; } static inline void ksft_inc_xpass_cnt(void) { ksft_cnt.ksft_xpass++; } static inline void ksft_inc_xskip_cnt(void) { ksft_cnt.ksft_xskip++; } With this approach, tests don't have to define their own counter variable and pass it in. I am looking to abstract the framework as much as possible. thanks, -- Shuah -- Shuah Khan Sr. Linux Kernel Developer Samsung Research America (Silicon Valley) shuahkh@xxxxxxxxxxxxxxx | (970) 217-8978 -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html