Remove use of string rather than straddle OTP version

string functions were used in unit tetss only, and were replaceable with io_lib:format
This commit is contained in:
Martin Sumner 2018-12-11 15:44:37 +00:00
parent 90574122c9
commit 9ca6b499e1
7 changed files with 30 additions and 78 deletions

View file

@ -498,11 +498,11 @@ generate_orderedkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) ->
Acc;
generate_orderedkeys(Seqn, Count, Acc, BucketLow, BucketHigh) ->
BNumber = Seqn div (BucketHigh - BucketLow),
BucketExt = leveled_util:string_right(
integer_to_list(BucketLow + BNumber), 4, $0),
KNumber = Seqn * 100 + leveled_rand:uniform(100),
BucketExt =
io_lib:format("K~4..0B", [BucketLow + BNumber]),
KeyExt =
leveled_util:string_right(integer_to_list(KNumber), 8, $0),
io_lib:format("K~8..0B", [Seqn * 100 + leveled_rand:uniform(100)]),
LK = leveled_codec:to_ledgerkey("Bucket" ++ BucketExt, "Key" ++ KeyExt, o),
Chunk = leveled_rand:rand_bytes(16),
{_B, _K, MV, _H, _LMs} =

View file

@ -1401,9 +1401,9 @@ compact_journal_testto(WRP, ExpectedFiles) ->
5000),
timer:sleep(1000),
CompactedManifest2 = ink_getmanifest(Ink1),
{ok, PrefixTest} = re:compile(?COMPACT_FP),
lists:foreach(fun({_SQN, FN, _P, _LK}) ->
?assertMatch(0, leveled_util:string_str(
FN, ?COMPACT_FP))
nomatch = re:run(FN, PrefixTest)
end,
CompactedManifest2),
?assertMatch(2, length(CompactedManifest2)),

View file

@ -265,11 +265,13 @@ generate_randomkeys(Count, BucketRangeLow, BucketRangeHigh) ->
generate_randomkeys(0, Acc, _BucketLow, _BucketHigh) ->
Acc;
generate_randomkeys(Count, Acc, BucketLow, BRange) ->
BNumber = leveled_util:string_right(
integer_to_list(BucketLow + leveled_rand:uniform(BRange)),
4, $0),
KNumber = leveled_util:string_right(
integer_to_list(leveled_rand:uniform(1000)), 4, $0),
BNumber =
lists:flatten(
io_lib:format("~4..0B",
[BucketLow + leveled_rand:uniform(BRange)])),
KNumber =
lists:flatten(
io_lib:format("~4..0B", [leveled_rand:uniform(1000)])),
K = {o, "Bucket" ++ BNumber, "Key" ++ KNumber, null},
RandKey = {K, {Count + 1,
{active, infinity},

View file

@ -262,11 +262,12 @@ generate_randomkeys(Seqn, Count, BucketRangeLow, BucketRangeHigh) ->
generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) ->
Acc;
generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) ->
BNumber = leveled_util:string_right(
integer_to_list(BucketLow + leveled_rand:uniform(BRange)),
4, $0),
KNumber = leveled_util:string_right(
integer_to_list(leveled_rand:uniform(1000)), 4, $0),
BNumber =
lists:flatten(
io_lib:format("K~4..0B",
[BucketLow + leveled_rand:uniform(BRange)])),
KNumber =
lists:flatten(io_lib:format("K~4..0B", [leveled_rand:uniform(1000)])),
{K, V} = {{o, "Bucket" ++ BNumber, "Key" ++ KNumber, null},
{Seqn, {active, infinity}, null}},
generate_randomkeys(Seqn + 1,

View file

@ -2490,10 +2490,10 @@ generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) ->
Acc;
generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) ->
BRand = leveled_rand:uniform(BRange),
BNumber = leveled_util:string_right(
integer_to_list(BucketLow + BRand), 4, $0),
KNumber = leveled_util:string_right(
integer_to_list(leveled_rand:uniform(1000)), 6, $0),
BNumber =
lists:flatten(io_lib:format("K~4..0B", [BucketLow + BRand])),
KNumber =
lists:flatten(io_lib:format("K~6..0B", [leveled_rand:uniform(1000)])),
LK = leveled_codec:to_ledgerkey("Bucket" ++ BNumber, "Key" ++ KNumber, o),
Chunk = leveled_rand:rand_bytes(64),
{_B, _K, MV, _H, _LMs} =

View file

@ -581,10 +581,12 @@ generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) ->
Acc;
generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) ->
BRand = leveled_rand:uniform(BRange),
BNumber = leveled_util:string_right(
integer_to_list(BucketLow + BRand), 4, $0),
KNumber = leveled_util:string_right(
integer_to_list(leveled_rand:uniform(1000)), 4, $0),
BNumber =
lists:flatten(
io_lib:format("K~4..0B", [BucketLow + BRand])),
KNumber =
lists:flatten(
io_lib:format("K~8..0B", [leveled_rand:uniform(1000)])),
{K, V} = {{o, "Bucket" ++ BNumber, "Key" ++ KNumber, null},
{Seqn, {active, infinity}, null}},
generate_randomkeys(Seqn + 1,

View file

@ -16,18 +16,6 @@
integer_time/1,
magic_hash/1]).
-export([string_right/3,
string_str/2]).
-ifdef(OTP_RELEASE).
-if(?OTP_RELEASE >= 21).
-else.
-define(LEGACY_OTP, true).
-endif.
-endif. % (OTP_RELEASE)
-spec generate_uuid() -> list().
%% @doc
@ -76,47 +64,6 @@ hash1(H, <<B:8/integer, Rest/bytes>>) ->
H2 = H1 bxor B,
hash1(H2, Rest).
%% A number of string functions have become deprecated in OTP 21
%%
-ifdef(LEGACY_OTP).
string_right(String, Len, Char) ->
string:right(String, Len, Char).
string_str(S, Sub) ->
string:str(S, Sub).
-else.
string_right(String, Len, Char) when is_list(String), is_integer(Char) ->
Slen = length(String),
if
Slen > Len -> lists:nthtail(Slen-Len, String);
Slen < Len -> chars(Char, Len-Slen, String);
Slen =:= Len -> String
end.
chars(C, N, Tail) when N > 0 ->
chars(C, N-1, [C|Tail]);
chars(C, 0, Tail) when is_integer(C) ->
Tail.
string_str(S, Sub) when is_list(Sub) -> str(S, Sub, 1).
str([C|S], [C|Sub], I) ->
case l_prefix(Sub, S) of
true -> I;
false -> str(S, [C|Sub], I+1)
end;
str([_|S], Sub, I) -> str(S, Sub, I+1);
str([], _Sub, _I) -> 0.
l_prefix([C|Pre], [C|String]) -> l_prefix(Pre, String);
l_prefix([], String) when is_list(String) -> true;
l_prefix(Pre, String) when is_list(Pre), is_list(String) -> false.
-endif.
%%%============================================================================
%%% Test