an attempt to fix a few different cases in convert_cpu_topology
diff --git a/src/folsom_vm_metrics.erl b/src/folsom_vm_metrics.erl
index 72eedb6..688e504 100644
--- a/src/folsom_vm_metrics.erl
+++ b/src/folsom_vm_metrics.erl
@@ -133,19 +133,19 @@
list_to_binary(io_lib:format("~p.~p", [A, B])).
convert_cpu_topology([{core, Value}| Tail], Acc) when is_tuple(Value) ->
- convert_cpu_topology(Tail, lists:append(Acc, [{core, tuple_to_list(Value)}]));
+ convert_cpu_topology(Tail, lists:append(Acc, [{core, tuple_to_list(Value)}]));
convert_cpu_topology([{core, Value}| Tail], Acc) when is_list(Value) ->
- convert_cpu_topology(Tail, lists:append(Acc, [{core, convert_cpu_topology(Value, [])}]));
+ convert_cpu_topology(Tail, lists:append(Acc, [{core, convert_cpu_topology(Value, [])}]));
convert_cpu_topology([{thread, Value}| Tail], Acc) ->
- convert_cpu_topology(Tail, lists:append(Acc, [{thread, tuple_to_list(Value)}]));
-convert_cpu_topology({logical, Value}, Acc) ->
- convert_cpu_topology([], lists:append(Acc, [logical, Value]));
+ convert_cpu_topology(Tail, lists:append(Acc, [{thread, tuple_to_list(Value)}]));
convert_cpu_topology([{node, Value}| Tail], Acc) ->
- convert_cpu_topology(Tail, lists:append(Acc, [{node, convert_cpu_topology(Value, [])}]));
+ convert_cpu_topology(Tail, lists:append(Acc, [{node, convert_cpu_topology(Value, [])}]));
convert_cpu_topology([{processor, Value}| Tail], Acc) ->
- convert_cpu_topology(Tail, lists:append(Acc, [{processor, convert_cpu_topology(Value, [])}]));
+ convert_cpu_topology(Tail, lists:append(Acc, [{processor, convert_cpu_topology(Value, [])}]));
+convert_cpu_topology({Key, Value}, _) ->
+ [{Key, Value}];
convert_cpu_topology([], Acc) ->
- Acc.
+ Acc.
get_process_info(Pid) ->
Info = [process_info(Pid, Key) || Key <- ?PROCESS_INFO],
diff --git a/test/folsom_erlang_checks.erl b/test/folsom_erlang_checks.erl
index eb4d857..31a681a 100644
--- a/test/folsom_erlang_checks.erl
+++ b/test/folsom_erlang_checks.erl
@@ -356,7 +356,9 @@
{core,[{thread,[logical,4]},{thread,[logical,12]}]},
{core,[{thread,[logical,6]},{thread,[logical,14]}]}]}]}],
- ExpectedResult = folsom_vm_metrics:convert_cpu_topology(Test, []).
+ ExpectedResult = folsom_vm_metrics:convert_cpu_topology(Test, []),
+
+ [{logical, 0}] = folsom_vm_metrics:convert_cpu_topology({logical, 0}, []).
duration_check(Duration) ->
[?assert(lists:keymember(Key, 1, Duration)) || Key <-