[Tarantool-patches] [PATCHv2 1/2] core: add setting error injections via env

Sergey Bronnikov sergeyb at tarantool.org
Thu Feb 25 17:36:59 MSK 2021


Hello,

thanks for patch!

small nit: with patch below alignment looks more accurately.

--- a/test/box-tap/errinj_set_with_enviroment_vars.test.lua
+++ b/test/box-tap/errinj_set_with_enviroment_vars.test.lua
@@ -4,8 +4,8 @@ local fio = require('fio')
  -- Execute errinj_set_with_enviroment_vars_script.lua
  -- via tarantool with presetted environment variables.
  local TARANTOOL_PATH = arg[-1]
-local bool_env = 'ERRINJ_TESTING=true ERRINJ_WAL_IO=True 
ERRINJ_WAL_SYNC=TRUE' ..
-                ' ERRINJ_WAL_WRITE=false ERRINJ_INDEX_ALLOC=False 
ERRINJ_WAL_WRITE_DISK=FALSE'
+local bool_env = 'ERRINJ_TESTING=true ERRINJ_WAL_IO=True 
ERRINJ_WAL_SYNC=TRUE ' ..
+                 'ERRINJ_WAL_WRITE=false ERRINJ_INDEX_ALLOC=False 
ERRINJ_WAL_WRITE_DISK=FALSE'
  local integer_env = 'ERRINJ_WAL_WRITE_PARTIAL=2 
ERRINJ_WAL_FALLOCATE=+2 ERRINJ_WAL_WRITE_COUNT=-2'
  local double_env = 'ERRINJ_VY_READ_PAGE_TIMEOUT=2.5 
ERRINJ_VY_SCHED_TIMEOUT=+2.5 ERRINJ_RELAY_TIMEOUT=-2.5'
  local set_env_str = ('%s %s %s'):format(bool_env, integer_env, double_env)

On 24.02.2021 12:38, Artem wrote:
> Hi,
>
> 20.02.2021 17:27, Sergey Bronnikov пишет:
>> Hi,
>>
>> On 20.02.2021 14:21, Artem wrote:
>>> Hello,
>>>
>>> thanks for the review!
>>>
>>>>> +
>>>>> +void errinj_set_with_environment_vars() {
>>>>> +    for (enum errinj_id i = 0; i < errinj_id_MAX; i++) {
>>>>> +        struct errinj *inj = &errinjs[i];
>>>>> +        const char *env_value = getenv(inj->name);
>>>>> +        if (!env_value || *env_value == '\0')
>>>>> +            continue;
>>>>> +
>>>>> +        if (inj->type == ERRINJ_INT) {
>>>>> +            char *end;
>>>>> +            int64_t int_value = strtoll(env_value, &end, 10);
>>>>> +            if (*end == '\0')
>>>>> +                inj->iparam = int_value;
>>>>> +        } else if (inj->type == ERRINJ_BOOL) {
>>>>> +            if (strcmp(env_value, "false") == 0 || 
>>>>> strcmp(env_value, "FALSE") == 0)
>>>>
>>>> 1. What happen if someone set boolean value to "False"?
>>>>
>>>> May be it's worth to convert env_value to lowercase and then 
>>>> compare? The same question for "true".
>>>
>>> 1. Done. Case-insensetive value can be set to env variable now.
>>
>> Thanks!
>>
>> It's worth to add different values for 'true'/'false' to test
>>
>> for documentation and regression purposes.
>
> Done, added tests for "true", "True", "TRUE" (same for false) and 
> tests for numeric injections with plus and minus signs.
>
> Updates you can see on the branch.
>


More information about the Tarantool-patches mailing list