1 Commits

Author SHA1 Message Date
085f182357 fix(Makefile): -lgcov, TOOLS = basen 2024-09-27 09:06:42 +03:00
5 changed files with 38 additions and 7 deletions

View File

@ -48,7 +48,7 @@ PROJECT_NAME = libbasen
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = v1.0.3 PROJECT_NUMBER = v1.0.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a

View File

@ -15,7 +15,7 @@ OBJS =\
base64\ base64\
hash/sha256\ hash/sha256\
TOOLS =\ TOOLS = ${LIB}
TESTS =\ TESTS =\
test-hex\ test-hex\
@ -59,6 +59,8 @@ DIRS =\
${OBJDIR}\ ${OBJDIR}\
${OBJDIR}/hash\ ${OBJDIR}/hash\
${LIBDIR}\ ${LIBDIR}\
doc\
cov
build: library tools build: library tools
@ -92,7 +94,7 @@ ${BINDIR}/%${-g}-cov: ${TESTDIR}/%.cpp ${patsubst %, ${OBJDIR}/%${-g}-cov.o, ${O
${CC} -o $@ $^ -I${INCDIR} ${-l} -lgtest -lgcov ${CFLAGS} ${CC} -o $@ $^ -I${INCDIR} ${-l} -lgtest -lgcov ${CFLAGS}
clean: clean:
rm -rf ${DIRS} doc cov rm -rf ${DIRS}
ifneq (${OBJS},) ifneq (${OBJS},)

View File

@ -85,7 +85,7 @@ namespace base64
case 2: case 2:
str[last_idx] = digits[data[data_size - 2] >> 2]; str[last_idx] = digits[data[data_size - 2] >> 2];
str[last_idx + 1] = digits[(data[data_size - 2] << 4 | data[data_size - 1] >> 4) & 0x3F]; str[last_idx + 1] = digits[(data[data_size - 2] << 4 | data[data_size - 1] >> 4) & 0x3F];
str[last_idx + 2] = digits[data[data_size - 1] << 2 & 0x3F]; str[last_idx + 2] = digits[data[data_size - 1] & 0x0F];
str[last_idx + 3] = '='; str[last_idx + 3] = '=';
break; break;
default: default:

29
src/basen.cpp Normal file
View File

@ -0,0 +1,29 @@
#include <iostream>
#include <argparse/argparse.hpp>
#include <basen.hpp>
int main(int argc, char *argv[])
{
argparse::ArgumentParser program("basen", "1.1.0");
program.add_argument("-t", "--type")
.help("encoding type")
.metavar("STRING")
.choices("base58", "base64", "hex")
.default_value("hex");
program.add_argument("-d", "--decode")
.help("is decode")
.flag();
try
{
program.parse_args(argc, argv);
}
catch (const std::exception &err)
{
std::cerr << err.what() << '\n';
std::cerr << program;
return 1;
}
return 0;
}

View File

@ -21,8 +21,8 @@ TEST(base64, isValid)
std::vector<std::pair<std::string, std::string>> tests = { std::vector<std::pair<std::string, std::string>> tests = {
{"", ""}, {"", ""},
{"BKUEpQ==", "04a504a5"}, {"BKUEpQ==", "04a504a5"},
{"aGVsbG8=", "68656c6c6f"}, {"BKUEpQA=", "04a504a500"},
{"aGVsbG9v", "68656c6c6f6f"}, {"BKUEpQAA", "04a504a50000"},
}; };
TEST(base64, encode) TEST(base64, encode)
{ {