瀏覽代碼

增加测试模块的函数

master
SisMaker 4 年之前
父節點
當前提交
71920c9b25
共有 2 個檔案被更改,包括 26 行新增0 行删除
  1. +11
    -0
      src/dynamicCompile/utStrToBeam.erl
  2. +15
    -0
      src/testCase/utTpfm.erl

+ 11
- 0
src/dynamicCompile/utStrToBeam.erl 查看文件

@ -0,0 +1,11 @@
-module(utStrToBeam).
-export([load/3]).
-spec load(Module :: atom(), Export :: [{Fun :: atom(), Arity :: pos_integer()}], Str :: string()) -> {module, Module :: atom()} | {error, _}.
load(Module, Export, Str) ->
{ok, Tokens, _EndLine} = erl_scan:string(Str),
{ok, Forms} = erl_parse:parse_form(Tokens),
NewForms = [{attribute, 1, module, Module}, {attribute, 2, export, Export}, Forms],
{ok, _, Binary} = compile:forms(NewForms),
code:load_binary(Module, "", Binary).

+ 15
- 0
src/testCase/utTpfm.erl 查看文件

@ -559,3 +559,18 @@ tPd(0, _) ->
tPd(N, _) -> tPd(N, _) ->
erlang:put(pdVpSize, 0), erlang:put(pdVpSize, 0),
tPd(N -1, erlang:get(pdVpSize)). tPd(N -1, erlang:get(pdVpSize)).
load1(0, List) ->
utKvsToBeam:load(load1, List);
load1(N, List) ->
utKvsToBeam:load(load1, List),
load1(N - 1, List).
load2(0, List) ->
utKvsToBeam:load(load2, List);
load2(N, List) ->
Str = << <<"get(", (utTypeCast:toBinary(Key))/binary, ") -> ", (utTypeCast:toBinary(Value))/binary, ";">> || {Key, Value} <- List>>,
LastStr = <<Str/binary, "get(_) -> undefine.">>,
utStrToBeam:load(load2, [{get, 1}], binary_to_list(LastStr)),
load2(N - 1, List).

Loading…
取消
儲存