mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
Automatically generate option value StringIds in make build-config.
Remove strIdGenerate() since bldStrId() performs the same function without cluttering the core code. Since bldStrId() is intended to work in non-debug builds, move the validity checks for input strings out of the DEBUG block. StringIds are generated as 5/6 bit, whichever is most efficient, for each option value. cfgOptionStrIdInternal() has been updated for this logic.
This commit is contained in:
parent
eeaab6a3d1
commit
52d4574460
@ -50,4 +50,41 @@ bldPut(const Storage *const storage, const char *const file, const Buffer *const
|
|||||||
storagePutP(storageNewWriteP(storage, STR(file), .noSyncPath = true), contentNew);
|
storagePutP(storageNewWriteP(storage, STR(file), .noSyncPath = true), contentNew);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************************************************************************
|
||||||
|
Generate constant StringIds
|
||||||
|
|
||||||
|
To generate a constant StringId call bldStrId(). It will return a String with the generated StringId macro.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
bldStrId("test");
|
||||||
|
|
||||||
|
will return the following:
|
||||||
|
|
||||||
|
STRID5("test", 0xa4cb40)
|
||||||
|
|
||||||
|
which can be used in a function, switch, or #define, e.g.:
|
||||||
|
|
||||||
|
#define TEST_STRID STRID5("test", 0xa4cb40)
|
||||||
|
|
||||||
|
DO NOT MODIFY either parameter in the macro -- ALWAYS use bldStrId() to create a new constant StringId.
|
||||||
|
***********************************************************************************************************************************/
|
||||||
|
String *
|
||||||
|
bldStrId(const char *const buffer)
|
||||||
|
{
|
||||||
|
StringId result = 0;
|
||||||
|
|
||||||
|
TRY_BEGIN()
|
||||||
|
{
|
||||||
|
result = strIdFromZ(stringIdBit5, buffer);
|
||||||
|
}
|
||||||
|
CATCH_ANY()
|
||||||
|
{
|
||||||
|
result = strIdFromZ(stringIdBit6, buffer);
|
||||||
|
}
|
||||||
|
TRY_END();
|
||||||
|
|
||||||
|
return strNewFmt("STRID%u(\"%s\", 0x%" PRIx64 ")", (unsigned int)(result & STRING_ID_BIT_MASK) + 5, buffer, result);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -196,14 +196,16 @@ bldCfgRender(const Storage *const storageRepo, const BldCfg bldCfg)
|
|||||||
for (unsigned int allowListIdx = 0; allowListIdx < strLstSize(allowList); allowListIdx++)
|
for (unsigned int allowListIdx = 0; allowListIdx < strLstSize(allowList); allowListIdx++)
|
||||||
{
|
{
|
||||||
const String *const allowListItem = strLstGet(allowList, allowListIdx);
|
const String *const allowListItem = strLstGet(allowList, allowListIdx);
|
||||||
|
const String *const constPrefix = strUpper(
|
||||||
|
strReplaceChr(strNewFmt("CFGOPTVAL_%s_%s", strZ(opt->name), strZ(allowListItem)), '-', '_'));
|
||||||
|
|
||||||
|
// Render StringId
|
||||||
|
strCatFmt(config, "%s\n", strZ(bldDefineRender(constPrefix, bldStrId(strZ(allowListItem)))));
|
||||||
|
|
||||||
|
// Render Z
|
||||||
strCatFmt(
|
strCatFmt(
|
||||||
config, "%s\n",
|
config, "%s\n",
|
||||||
strZ(
|
strZ(bldDefineRender(strNewFmt("%s_Z", strZ(constPrefix)), strNewFmt("\"%s\"", strZ(allowListItem)))));
|
||||||
bldDefineRender(
|
|
||||||
strUpper(
|
|
||||||
strReplaceChr(strNewFmt("CFGOPTVAL_%s_%s_Z", strZ(opt->name), strZ(allowListItem)), '-', '_')),
|
|
||||||
strNewFmt("\"%s\"", strZ(allowListItem)))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lf = true;
|
lf = true;
|
||||||
|
@ -54,7 +54,6 @@ strIdFromZN(const StringIdBit bit, const char *const buffer, const size_t size)
|
|||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
// Make sure the string is valid for this encoding
|
// Make sure the string is valid for this encoding
|
||||||
for (size_t bufferIdx = 0; bufferIdx < size; bufferIdx++)
|
for (size_t bufferIdx = 0; bufferIdx < size; bufferIdx++)
|
||||||
{
|
{
|
||||||
@ -64,7 +63,6 @@ strIdFromZN(const StringIdBit bit, const char *const buffer, const size_t size)
|
|||||||
if (map[(uint8_t)buffer[bufferIdx]] == 0)
|
if (map[(uint8_t)buffer[bufferIdx]] == 0)
|
||||||
THROW_FMT(FormatError, "'%c' is invalid for 5-bit encoding in '%s'", buffer[bufferIdx], buffer);
|
THROW_FMT(FormatError, "'%c' is invalid for 5-bit encoding in '%s'", buffer[bufferIdx], buffer);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Set encoding in header
|
// Set encoding in header
|
||||||
uint64_t result = stringIdBit5;
|
uint64_t result = stringIdBit5;
|
||||||
@ -144,7 +142,6 @@ strIdFromZN(const StringIdBit bit, const char *const buffer, const size_t size)
|
|||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
// Make sure the string is valid for this encoding
|
// Make sure the string is valid for this encoding
|
||||||
for (size_t bufferIdx = 0; bufferIdx < size; bufferIdx++)
|
for (size_t bufferIdx = 0; bufferIdx < size; bufferIdx++)
|
||||||
{
|
{
|
||||||
@ -154,7 +151,6 @@ strIdFromZN(const StringIdBit bit, const char *const buffer, const size_t size)
|
|||||||
if (map[(uint8_t)buffer[bufferIdx]] == 0)
|
if (map[(uint8_t)buffer[bufferIdx]] == 0)
|
||||||
THROW_FMT(FormatError, "'%c' is invalid for 6-bit encoding in '%s'", buffer[bufferIdx], buffer);
|
THROW_FMT(FormatError, "'%c' is invalid for 6-bit encoding in '%s'", buffer[bufferIdx], buffer);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Set encoding in header
|
// Set encoding in header
|
||||||
uint64_t result = stringIdBit6;
|
uint64_t result = stringIdBit6;
|
||||||
@ -341,30 +337,6 @@ strIdToZ(const StringId strId, char *const buffer)
|
|||||||
FUNCTION_TEST_RETURN(size);
|
FUNCTION_TEST_RETURN(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************************************************************************/
|
|
||||||
#ifdef DEBUG
|
|
||||||
|
|
||||||
void
|
|
||||||
strIdGenerate(const char *const buffer)
|
|
||||||
{
|
|
||||||
StringId result = 0;
|
|
||||||
|
|
||||||
TRY_BEGIN()
|
|
||||||
{
|
|
||||||
result = strIdFromZ(stringIdBit5, buffer);
|
|
||||||
}
|
|
||||||
CATCH_ANY()
|
|
||||||
{
|
|
||||||
result = strIdFromZ(stringIdBit6, buffer);
|
|
||||||
}
|
|
||||||
TRY_END();
|
|
||||||
|
|
||||||
THROW_FMT(FormatError, "STRID%u(\"%s\", 0x%" PRIx64 ")", (unsigned int)(result & STRING_ID_BIT_MASK) + 5, buffer, result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**********************************************************************************************************************************/
|
/**********************************************************************************************************************************/
|
||||||
size_t
|
size_t
|
||||||
strIdToLog(const StringId strId, char *const buffer, const size_t bufferSize)
|
strIdToLog(const StringId strId, char *const buffer, const size_t bufferSize)
|
||||||
|
@ -17,7 +17,7 @@ When assigning a StringId to an enum, it will be necessary to cast the StringId
|
|||||||
values, since some compilers will complain about the implicit conversion without a cast. The enum will be 32-bit if all values of
|
values, since some compilers will complain about the implicit conversion without a cast. The enum will be 32-bit if all values of
|
||||||
the enum are <= 0xffffffff.
|
the enum are <= 0xffffffff.
|
||||||
|
|
||||||
See strIdGenerate() for information on StringId constants.
|
See bldStrId() for information on generating StringId constants.
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#ifndef COMMON_TYPE_STRINGID_H
|
#ifndef COMMON_TYPE_STRINGID_H
|
||||||
#define COMMON_TYPE_STRINGID_H
|
#define COMMON_TYPE_STRINGID_H
|
||||||
@ -40,6 +40,11 @@ when calling strIdToZN. If the buffer needs to be zero-terminated then an extra
|
|||||||
// Maximum for any encoding
|
// Maximum for any encoding
|
||||||
#define STRID_MAX STRID5_MAX
|
#define STRID_MAX STRID5_MAX
|
||||||
|
|
||||||
|
/***********************************************************************************************************************************
|
||||||
|
Constants used to extract information from the header
|
||||||
|
***********************************************************************************************************************************/
|
||||||
|
#define STRING_ID_BIT_MASK 3
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
StringId typedef to make them more recognizable in the code
|
StringId typedef to make them more recognizable in the code
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
@ -55,8 +60,8 @@ typedef enum
|
|||||||
} StringIdBit;
|
} StringIdBit;
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Macros to define constant StringIds. ALWAYS use strIdGenerate() to create these macros. The parameters in the macros are not
|
Macros to define constant StringIds. ALWAYS use bldStrId() to create these macros. The parameters in the macros are not verified
|
||||||
verified against each other so the str parameter is included only for documentation purposes.
|
against each other so the str parameter is included only for documentation purposes.
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STRID5(str, strId) strId
|
#define STRID5(str, strId) strId
|
||||||
#define STRID6(str, strId) strId
|
#define STRID6(str, strId) strId
|
||||||
@ -94,31 +99,6 @@ String *strIdToStr(const StringId strId);
|
|||||||
// Convert StringId to zero-terminated string. See strIdToZN() for buffer sizing and return value.
|
// Convert StringId to zero-terminated string. See strIdToZN() for buffer sizing and return value.
|
||||||
size_t strIdToZ(const StringId strId, char *const buffer);
|
size_t strIdToZ(const StringId strId, char *const buffer);
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
|
||||||
Generate constant StringIds
|
|
||||||
|
|
||||||
To generate a constant StringId call strIdGenerate() in any debug build. It will throw an error with the generated StringId macro
|
|
||||||
in the error message.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
strIdGenerate("test");
|
|
||||||
|
|
||||||
will throw the following error message:
|
|
||||||
|
|
||||||
STRID5("test", 0xa4cb40)
|
|
||||||
|
|
||||||
which can be used in a function, switch, or #define, e.g.:
|
|
||||||
|
|
||||||
#define TEST_STRID STRID5("test", 0xa4cb40)
|
|
||||||
|
|
||||||
DO NOT MODIFY either parameter in the macro -- ALWAYS use strIdGenerate() to create a new constant StringId.
|
|
||||||
***********************************************************************************************************************************/
|
|
||||||
#ifdef DEBUG
|
|
||||||
// Generate a new constant StringId
|
|
||||||
void strIdGenerate(const char *const buffer) __attribute__((__noreturn__));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Macros for function logging
|
Macros for function logging
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
|
@ -122,93 +122,164 @@ Option constants
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Option value constants
|
Option value constants
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
|
#define CFGOPTVAL_ARCHIVE_MODE_OFF STRID5("off", 0x18cf0)
|
||||||
#define CFGOPTVAL_ARCHIVE_MODE_OFF_Z "off"
|
#define CFGOPTVAL_ARCHIVE_MODE_OFF_Z "off"
|
||||||
|
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE STRID5("preserve", 0x2da45996500)
|
||||||
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE_Z "preserve"
|
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE_Z "preserve"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_COMPRESS_TYPE_BZ2 STRID5("bz2", 0x73420)
|
||||||
#define CFGOPTVAL_COMPRESS_TYPE_BZ2_Z "bz2"
|
#define CFGOPTVAL_COMPRESS_TYPE_BZ2_Z "bz2"
|
||||||
|
#define CFGOPTVAL_COMPRESS_TYPE_GZ STRID5("gz", 0x3470)
|
||||||
#define CFGOPTVAL_COMPRESS_TYPE_GZ_Z "gz"
|
#define CFGOPTVAL_COMPRESS_TYPE_GZ_Z "gz"
|
||||||
|
#define CFGOPTVAL_COMPRESS_TYPE_LZ4 STRID6("lz4", 0x2068c1)
|
||||||
#define CFGOPTVAL_COMPRESS_TYPE_LZ4_Z "lz4"
|
#define CFGOPTVAL_COMPRESS_TYPE_LZ4_Z "lz4"
|
||||||
|
#define CFGOPTVAL_COMPRESS_TYPE_NONE STRID5("none", 0x2b9ee0)
|
||||||
#define CFGOPTVAL_COMPRESS_TYPE_NONE_Z "none"
|
#define CFGOPTVAL_COMPRESS_TYPE_NONE_Z "none"
|
||||||
|
#define CFGOPTVAL_COMPRESS_TYPE_ZST STRID5("zst", 0x527a0)
|
||||||
#define CFGOPTVAL_COMPRESS_TYPE_ZST_Z "zst"
|
#define CFGOPTVAL_COMPRESS_TYPE_ZST_Z "zst"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG STRID5("debug", 0x7a88a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG_Z "debug"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG_Z "debug"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL STRID5("detail", 0x1890d0a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL_Z "detail"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL_Z "detail"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR STRID5("error", 0x127ca450)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_Z "error"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_Z "error"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO STRID5("info", 0x799c90)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO_Z "info"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO_Z "info"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF STRID5("off", 0x18cf0)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_Z "off"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_Z "off"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE STRID5("trace", 0x5186540)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE_Z "trace"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE_Z "trace"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN STRID5("warn", 0x748370)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_Z "warn"
|
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_Z "warn"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG STRID5("debug", 0x7a88a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG_Z "debug"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG_Z "debug"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL STRID5("detail", 0x1890d0a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL_Z "detail"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL_Z "detail"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR STRID5("error", 0x127ca450)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_Z "error"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_Z "error"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO STRID5("info", 0x799c90)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO_Z "info"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO_Z "info"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_OFF STRID5("off", 0x18cf0)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_Z "off"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_Z "off"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE STRID5("trace", 0x5186540)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE_Z "trace"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE_Z "trace"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN STRID5("warn", 0x748370)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_Z "warn"
|
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_Z "warn"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG STRID5("debug", 0x7a88a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG_Z "debug"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG_Z "debug"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL STRID5("detail", 0x1890d0a40)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL_Z "detail"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL_Z "detail"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR STRID5("error", 0x127ca450)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR_Z "error"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR_Z "error"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO STRID5("info", 0x799c90)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO_Z "info"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO_Z "info"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF STRID5("off", 0x18cf0)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF_Z "off"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF_Z "off"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE STRID5("trace", 0x5186540)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE_Z "trace"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE_Z "trace"
|
||||||
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN STRID5("warn", 0x748370)
|
||||||
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN_Z "warn"
|
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN_Z "warn"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_OUTPUT_JSON STRID5("json", 0x73e6a0)
|
||||||
#define CFGOPTVAL_OUTPUT_JSON_Z "json"
|
#define CFGOPTVAL_OUTPUT_JSON_Z "json"
|
||||||
|
#define CFGOPTVAL_OUTPUT_TEXT STRID5("text", 0xa60b40)
|
||||||
#define CFGOPTVAL_OUTPUT_TEXT_Z "text"
|
#define CFGOPTVAL_OUTPUT_TEXT_Z "text"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REMOTE_TYPE_PG STRID5("pg", 0xf00)
|
||||||
#define CFGOPTVAL_REMOTE_TYPE_PG_Z "pg"
|
#define CFGOPTVAL_REMOTE_TYPE_PG_Z "pg"
|
||||||
|
#define CFGOPTVAL_REMOTE_TYPE_REPO STRID5("repo", 0x7c0b20)
|
||||||
#define CFGOPTVAL_REMOTE_TYPE_REPO_Z "repo"
|
#define CFGOPTVAL_REMOTE_TYPE_REPO_Z "repo"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS STRID5("sas", 0x4c330)
|
||||||
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS_Z "sas"
|
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS_Z "sas"
|
||||||
|
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED STRID5("shared", 0x85905130)
|
||||||
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED_Z "shared"
|
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED_Z "shared"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC STRID5("aes-256-cbc", 0xc43dfbbcdcca10)
|
||||||
#define CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC_Z "aes-256-cbc"
|
#define CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC_Z "aes-256-cbc"
|
||||||
|
#define CFGOPTVAL_REPO_CIPHER_TYPE_NONE STRID5("none", 0x2b9ee0)
|
||||||
#define CFGOPTVAL_REPO_CIPHER_TYPE_NONE_Z "none"
|
#define CFGOPTVAL_REPO_CIPHER_TYPE_NONE_Z "none"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO STRID5("auto", 0x7d2a10)
|
||||||
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO_Z "auto"
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO_Z "auto"
|
||||||
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE STRID5("service", 0x1469b48b30)
|
||||||
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE_Z "service"
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE_Z "service"
|
||||||
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN STRID5("token", 0xe2adf40)
|
||||||
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN_Z "token"
|
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN_Z "token"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF STRID5("diff", 0x319240)
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF_Z "diff"
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF_Z "diff"
|
||||||
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL STRID5("full", 0x632a60)
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL_Z "full"
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL_Z "full"
|
||||||
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR STRID5("incr", 0x90dc90)
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR_Z "incr"
|
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR_Z "incr"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT STRID5("count", 0x14755e30)
|
||||||
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT_Z "count"
|
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT_Z "count"
|
||||||
|
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME STRID5("time", 0x2b5340)
|
||||||
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME_Z "time"
|
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME_Z "time"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO STRID5("auto", 0x7d2a10)
|
||||||
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO_Z "auto"
|
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO_Z "auto"
|
||||||
|
#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED STRID5("shared", 0x85905130)
|
||||||
#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED_Z "shared"
|
#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED_Z "shared"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST STRID5("host", 0xa4de80)
|
||||||
#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST_Z "host"
|
#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST_Z "host"
|
||||||
|
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH STRID5("path", 0x450300)
|
||||||
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH_Z "path"
|
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH_Z "path"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_REPO_TYPE_AZURE STRID5("azure", 0x5957410)
|
||||||
#define CFGOPTVAL_REPO_TYPE_AZURE_Z "azure"
|
#define CFGOPTVAL_REPO_TYPE_AZURE_Z "azure"
|
||||||
|
#define CFGOPTVAL_REPO_TYPE_CIFS STRID5("cifs", 0x999230)
|
||||||
#define CFGOPTVAL_REPO_TYPE_CIFS_Z "cifs"
|
#define CFGOPTVAL_REPO_TYPE_CIFS_Z "cifs"
|
||||||
|
#define CFGOPTVAL_REPO_TYPE_GCS STRID5("gcs", 0x4c670)
|
||||||
#define CFGOPTVAL_REPO_TYPE_GCS_Z "gcs"
|
#define CFGOPTVAL_REPO_TYPE_GCS_Z "gcs"
|
||||||
|
#define CFGOPTVAL_REPO_TYPE_POSIX STRID5("posix", 0x184cdf00)
|
||||||
#define CFGOPTVAL_REPO_TYPE_POSIX_Z "posix"
|
#define CFGOPTVAL_REPO_TYPE_POSIX_Z "posix"
|
||||||
|
#define CFGOPTVAL_REPO_TYPE_S3 STRID6("s3", 0x7d31)
|
||||||
#define CFGOPTVAL_REPO_TYPE_S3_Z "s3"
|
#define CFGOPTVAL_REPO_TYPE_S3_Z "s3"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_SORT_ASC STRID5("asc", 0xe610)
|
||||||
#define CFGOPTVAL_SORT_ASC_Z "asc"
|
#define CFGOPTVAL_SORT_ASC_Z "asc"
|
||||||
|
#define CFGOPTVAL_SORT_DESC STRID5("desc", 0x1cca40)
|
||||||
#define CFGOPTVAL_SORT_DESC_Z "desc"
|
#define CFGOPTVAL_SORT_DESC_Z "desc"
|
||||||
|
#define CFGOPTVAL_SORT_NONE STRID5("none", 0x2b9ee0)
|
||||||
#define CFGOPTVAL_SORT_NONE_Z "none"
|
#define CFGOPTVAL_SORT_NONE_Z "none"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_TARGET_ACTION_PAUSE STRID5("pause", 0x59d4300)
|
||||||
#define CFGOPTVAL_TARGET_ACTION_PAUSE_Z "pause"
|
#define CFGOPTVAL_TARGET_ACTION_PAUSE_Z "pause"
|
||||||
|
#define CFGOPTVAL_TARGET_ACTION_PROMOTE STRID5("promote", 0x168f6be500)
|
||||||
#define CFGOPTVAL_TARGET_ACTION_PROMOTE_Z "promote"
|
#define CFGOPTVAL_TARGET_ACTION_PROMOTE_Z "promote"
|
||||||
|
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN STRID5("shutdown", 0x75de4a55130)
|
||||||
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN_Z "shutdown"
|
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN_Z "shutdown"
|
||||||
|
|
||||||
|
#define CFGOPTVAL_TYPE_DEFAULT STRID5("default", 0x5195098a40)
|
||||||
#define CFGOPTVAL_TYPE_DEFAULT_Z "default"
|
#define CFGOPTVAL_TYPE_DEFAULT_Z "default"
|
||||||
|
#define CFGOPTVAL_TYPE_DIFF STRID5("diff", 0x319240)
|
||||||
#define CFGOPTVAL_TYPE_DIFF_Z "diff"
|
#define CFGOPTVAL_TYPE_DIFF_Z "diff"
|
||||||
|
#define CFGOPTVAL_TYPE_FULL STRID5("full", 0x632a60)
|
||||||
#define CFGOPTVAL_TYPE_FULL_Z "full"
|
#define CFGOPTVAL_TYPE_FULL_Z "full"
|
||||||
|
#define CFGOPTVAL_TYPE_IMMEDIATE STRID5("immediate", 0x5a05242b5a90)
|
||||||
#define CFGOPTVAL_TYPE_IMMEDIATE_Z "immediate"
|
#define CFGOPTVAL_TYPE_IMMEDIATE_Z "immediate"
|
||||||
|
#define CFGOPTVAL_TYPE_INCR STRID5("incr", 0x90dc90)
|
||||||
#define CFGOPTVAL_TYPE_INCR_Z "incr"
|
#define CFGOPTVAL_TYPE_INCR_Z "incr"
|
||||||
|
#define CFGOPTVAL_TYPE_LSN STRID5("lsn", 0x3a6c0)
|
||||||
#define CFGOPTVAL_TYPE_LSN_Z "lsn"
|
#define CFGOPTVAL_TYPE_LSN_Z "lsn"
|
||||||
|
#define CFGOPTVAL_TYPE_NAME STRID5("name", 0x2b42e0)
|
||||||
#define CFGOPTVAL_TYPE_NAME_Z "name"
|
#define CFGOPTVAL_TYPE_NAME_Z "name"
|
||||||
|
#define CFGOPTVAL_TYPE_NONE STRID5("none", 0x2b9ee0)
|
||||||
#define CFGOPTVAL_TYPE_NONE_Z "none"
|
#define CFGOPTVAL_TYPE_NONE_Z "none"
|
||||||
|
#define CFGOPTVAL_TYPE_PRESERVE STRID5("preserve", 0x2da45996500)
|
||||||
#define CFGOPTVAL_TYPE_PRESERVE_Z "preserve"
|
#define CFGOPTVAL_TYPE_PRESERVE_Z "preserve"
|
||||||
|
#define CFGOPTVAL_TYPE_STANDBY STRID5("standby", 0x6444706930)
|
||||||
#define CFGOPTVAL_TYPE_STANDBY_Z "standby"
|
#define CFGOPTVAL_TYPE_STANDBY_Z "standby"
|
||||||
|
#define CFGOPTVAL_TYPE_TIME STRID5("time", 0x2b5340)
|
||||||
#define CFGOPTVAL_TYPE_TIME_Z "time"
|
#define CFGOPTVAL_TYPE_TIME_Z "time"
|
||||||
|
#define CFGOPTVAL_TYPE_XID STRID5("xid", 0x11380)
|
||||||
#define CFGOPTVAL_TYPE_XID_Z "xid"
|
#define CFGOPTVAL_TYPE_XID_Z "xid"
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
|
@ -1149,11 +1149,19 @@ cfgOptionStrIdInternal(
|
|||||||
FUNCTION_TEST_END();
|
FUNCTION_TEST_END();
|
||||||
|
|
||||||
const String *const value = varStr(cfgOptionIdxInternal(optionId, optionIdx, varTypeString, false));
|
const String *const value = varStr(cfgOptionIdxInternal(optionId, optionIdx, varTypeString, false));
|
||||||
|
StringId result = 0;
|
||||||
|
|
||||||
if (optionId == cfgOptRepoType)
|
TRY_BEGIN()
|
||||||
FUNCTION_TEST_RETURN(strIdFromStr(stringIdBit6, value));
|
{
|
||||||
|
result = strIdFromStr(stringIdBit5, value);
|
||||||
|
}
|
||||||
|
CATCH_ANY()
|
||||||
|
{
|
||||||
|
result = strIdFromStr(stringIdBit6, value);
|
||||||
|
}
|
||||||
|
TRY_END();
|
||||||
|
|
||||||
FUNCTION_TEST_RETURN(strIdFromStr(stringIdBit5, value));
|
FUNCTION_TEST_RETURN(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
StringId
|
StringId
|
||||||
|
@ -42,39 +42,6 @@ typedef enum
|
|||||||
|
|
||||||
#define CFG_COMMAND_ROLE_TOTAL 4
|
#define CFG_COMMAND_ROLE_TOTAL 4
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
|
||||||
Constants for configuration option values
|
|
||||||
|
|
||||||
??? These should be generated automatically but for now just put them here so they are easy to find when it is time to replace them
|
|
||||||
with the auto-generated values. Note that the _Z variants of these constants are auto-generated.
|
|
||||||
***********************************************************************************************************************************/
|
|
||||||
#define CFGOPTVAL_ARCHIVE_MODE_OFF STRID5("off", 0x18cf0)
|
|
||||||
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE STRID5("preserve", 0x2da45996500)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_OUTPUT_TEXT STRID5("text", 0xa60b40)
|
|
||||||
#define CFGOPTVAL_OUTPUT_JSON STRID5("json", 0x73e6a0)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF STRID5("diff", 0x319240)
|
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL STRID5("full", 0x632a60)
|
|
||||||
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR STRID5("incr", 0x90dc90)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT STRID5("count", 0x14755e30)
|
|
||||||
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME STRID5("time", 0x2b5340)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_TARGET_ACTION_PAUSE STRID5("pause", 0x59d4300)
|
|
||||||
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN STRID5("shutdown", 0x75de4a55130)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_SORT_ASC STRID5("asc", 0xe610)
|
|
||||||
#define CFGOPTVAL_SORT_DESC STRID5("desc", 0x1cca40)
|
|
||||||
#define CFGOPTVAL_SORT_NONE STRID5("none", 0x2b9ee0)
|
|
||||||
|
|
||||||
#define CFGOPTVAL_TYPE_DEFAULT STRID5("default", 0x5195098a40)
|
|
||||||
#define CFGOPTVAL_TYPE_IMMEDIATE STRID5("immediate", 0x5a05242b5a90)
|
|
||||||
#define CFGOPTVAL_TYPE_NONE STRID5("none", 0x2b9ee0)
|
|
||||||
#define CFGOPTVAL_TYPE_PRESERVE STRID5("preserve", 0x2da45996500)
|
|
||||||
#define CFGOPTVAL_TYPE_STANDBY STRID5("standby", 0x6444706930)
|
|
||||||
#define CFGOPTVAL_TYPE_TIME STRID5("time", 0x2b5340)
|
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Command Functions
|
Command Functions
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ Azure Storage
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Storage type
|
Storage type
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STORAGE_AZURE_TYPE STRID6("azure", 0x54956811)
|
#define STORAGE_AZURE_TYPE STRID5("azure", 0x5957410)
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Key type
|
Key type
|
||||||
|
@ -9,7 +9,7 @@ CIFS Storage
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Storage type
|
Storage type
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STORAGE_CIFS_TYPE STRID6("cifs", 0x4c62431)
|
#define STORAGE_CIFS_TYPE STRID5("cifs", 0x999230)
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Constructors
|
Constructors
|
||||||
|
@ -9,7 +9,7 @@ GCS Storage
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Storage type
|
Storage type
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STORAGE_GCS_TYPE STRID6("gcs", 0x130c71)
|
#define STORAGE_GCS_TYPE STRID5("gcs", 0x4c670)
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Key type
|
Key type
|
||||||
|
@ -14,7 +14,7 @@ typedef struct StoragePosix StoragePosix;
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Storage type
|
Storage type
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STORAGE_POSIX_TYPE STRID6("posix", 0x182533d01)
|
#define STORAGE_POSIX_TYPE STRID5("posix", 0x184cdf00)
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Constructors
|
Constructors
|
||||||
|
@ -10,7 +10,7 @@ Remote Storage
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Storage type
|
Storage type
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define STORAGE_REMOTE_TYPE STRID6("remote", 0x1543cd1521)
|
#define STORAGE_REMOTE_TYPE STRID5("remote", 0xb47b4b20)
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Constructors
|
Constructors
|
||||||
|
@ -176,7 +176,7 @@ testRun(void)
|
|||||||
" - off\n"
|
" - off\n"
|
||||||
" - error\n"
|
" - error\n"
|
||||||
" - warn\n"
|
" - warn\n"
|
||||||
" - debug\n"
|
" - debug1\n"
|
||||||
"\n"
|
"\n"
|
||||||
" log-level-file:\n"
|
" log-level-file:\n"
|
||||||
" section: global\n"
|
" section: global\n"
|
||||||
@ -248,14 +248,22 @@ testRun(void)
|
|||||||
COMMENT_BLOCK_BEGIN "\n"
|
COMMENT_BLOCK_BEGIN "\n"
|
||||||
"Option value constants\n"
|
"Option value constants\n"
|
||||||
COMMENT_BLOCK_END "\n"
|
COMMENT_BLOCK_END "\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG_Z \"debug\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG1 STRID6(\"debug1\", 0x7475421441)\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG1_Z \"debug1\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR STRID5(\"error\", 0x127ca450)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_Z \"error\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_Z \"error\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF STRID5(\"off\", 0x18cf0)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_Z \"off\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_Z \"off\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN STRID5(\"warn\", 0x748370)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_Z \"warn\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_Z \"warn\"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG_Z \"debug\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG1 STRID6(\"debug1\", 0x7475421441)\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG1_Z \"debug1\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR STRID5(\"error\", 0x127ca450)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_Z \"error\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_Z \"error\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_OFF STRID5(\"off\", 0x18cf0)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_Z \"off\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_Z \"off\"\n"
|
||||||
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_WARN STRID5(\"warn\", 0x748370)\n"
|
||||||
"#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_Z \"warn\"\n"
|
"#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_Z \"warn\"\n"
|
||||||
"\n"
|
"\n"
|
||||||
COMMENT_BLOCK_BEGIN "\n"
|
COMMENT_BLOCK_BEGIN "\n"
|
||||||
|
@ -545,6 +545,8 @@ testRun(void)
|
|||||||
TEST_RESULT_UINT(strIdFromZN(stringIdBit5, "abc-zkz2-y56?", 13), TEST_STR5ID13, "5 bits 13 chars");
|
TEST_RESULT_UINT(strIdFromZN(stringIdBit5, "abc-zkz2-y56?", 13), TEST_STR5ID13, "5 bits 13 chars");
|
||||||
TEST_RESULT_UINT(strIdFromZN(stringIdBit5, "abc-zkz2-y56??", 14), TEST_STR5ID13, "5 bits 14 chars");
|
TEST_RESULT_UINT(strIdFromZN(stringIdBit5, "abc-zkz2-y56??", 14), TEST_STR5ID13, "5 bits 14 chars");
|
||||||
|
|
||||||
|
TEST_ERROR(strIdFromZN(stringIdBit5, "AB", 2), FormatError, "'A' is invalid for 5-bit encoding in 'AB'");
|
||||||
|
|
||||||
#define TEST_STR6ID1 (stringIdBit6 | (uint16_t)('a' - 96) << 4)
|
#define TEST_STR6ID1 (stringIdBit6 | (uint16_t)('a' - 96) << 4)
|
||||||
#define TEST_STR6ID2 (TEST_STR6ID1 | (uint16_t)('b' - 96) << 10)
|
#define TEST_STR6ID2 (TEST_STR6ID1 | (uint16_t)('b' - 96) << 10)
|
||||||
#define TEST_STR6ID3 ((uint32_t)TEST_STR6ID2 | (uint32_t)('C' - 27) << 16)
|
#define TEST_STR6ID3 ((uint32_t)TEST_STR6ID2 | (uint32_t)('C' - 27) << 16)
|
||||||
@ -563,6 +565,8 @@ testRun(void)
|
|||||||
TEST_RESULT_UINT(strIdFromZN(stringIdBit6, "abC-40MzZ9?", 11), TEST_STR6ID11, "6 bits 11 chars");
|
TEST_RESULT_UINT(strIdFromZN(stringIdBit6, "abC-40MzZ9?", 11), TEST_STR6ID11, "6 bits 11 chars");
|
||||||
TEST_RESULT_UINT(strIdFromZN(stringIdBit6, "abC-40MzZ9??", 12), TEST_STR6ID11, "6 bits 12 chars");
|
TEST_RESULT_UINT(strIdFromZN(stringIdBit6, "abC-40MzZ9??", 12), TEST_STR6ID11, "6 bits 12 chars");
|
||||||
|
|
||||||
|
TEST_ERROR(strIdFromZN(stringIdBit6, "|B", 2), FormatError, "'|' is invalid for 6-bit encoding in '|B'");
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
TEST_TITLE("STRID*()");
|
TEST_TITLE("STRID*()");
|
||||||
|
|
||||||
@ -662,13 +666,6 @@ testRun(void)
|
|||||||
|
|
||||||
TEST_RESULT_STR_Z(strIdToStr(testStringIdEnumTest), "test", "pass to StringId param");
|
TEST_RESULT_STR_Z(strIdToStr(testStringIdEnumTest), "test", "pass to StringId param");
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
|
||||||
TEST_TITLE("strIdGenerate()");
|
|
||||||
|
|
||||||
TEST_ERROR(strIdGenerate("watcha"), FormatError, "STRID5(\"watcha\", 0x281d0370)");
|
|
||||||
TEST_ERROR(strIdGenerate("Watcha"), FormatError, "STRID6(\"Watcha\", 0x480d407c1)");
|
|
||||||
TEST_ERROR(strIdGenerate("%tcha"), FormatError, "'%' is invalid for 6-bit encoding in '%tcha'");
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
TEST_TITLE("strIdToLog()");
|
TEST_TITLE("strIdToLog()");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user