Skip to content

Commit

Permalink
fix: list options required param (#1138)
Browse files Browse the repository at this point in the history
fix: list optins required param

Signed-off-by: peefy <xpf6677@163.com>
  • Loading branch information
Peefy authored Mar 15, 2024
1 parent 4e7ab40 commit a1132d1
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 6 deletions.
9 changes: 9 additions & 0 deletions kclvm/api/src/capi_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,15 @@ fn test_c_api_rename_code() {
);
}

#[test]
fn test_c_api_list_options() {
test_c_api_without_wrapper::<ParseProgramArgs, ListOptionsResult>(
"KclvmService.ListOptions",
"list-options.json",
"list-options.response.json",
);
}

#[test]
fn test_c_api_testing() {
test_c_api::<TestArgs, TestResult, _>(
Expand Down
3 changes: 3 additions & 0 deletions kclvm/api/src/testdata/list-options.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"paths": ["./src/testdata/option/main.k"]
}
25 changes: 25 additions & 0 deletions kclvm/api/src/testdata/list-options.response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"options": [
{
"name": "key1",
"type": "",
"required": false,
"default_value": "",
"help": ""
},
{
"name": "key2",
"type": "",
"required": true,
"default_value": "",
"help": ""
},
{
"name": "metadata-key",
"type": "",
"required": false,
"default_value": "",
"help": ""
}
]
}
4 changes: 2 additions & 2 deletions kclvm/loader/src/option.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use kclvm_ast::{ast, walker::MutSelfWalker};
use kclvm_sema::builtin::BUILTIN_FUNCTIONS;
use kclvm_sema::{builtin::option::OptionHelp, resolver::scope::NodeKey};

use crate::util::get_call_args_strip_string;
use crate::util::{get_call_args_string, get_call_args_strip_string};
use crate::{load_packages, util::get_call_args_bool, LoadPackageOptions, Packages};

#[derive(Debug)]
Expand Down Expand Up @@ -33,7 +33,7 @@ impl<'ctx> MutSelfWalker for OptionHelpExtractor<'ctx> {
name: get_call_args_strip_string(call_expr, 0, Some("key")),
ty: get_call_args_strip_string(call_expr, 1, Some("type")),
required: get_call_args_bool(call_expr, 2, Some("required")),
default_value: get_call_args_strip_string(call_expr, 3, Some("default")),
default_value: get_call_args_string(call_expr, 3, Some("default")),
help: get_call_args_strip_string(call_expr, 3, Some("help")),
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ expression: "format!(\"{:#?}\", options)"
OptionHelp {
name: "key1",
ty: "str",
required: false,
required: true,
default_value: "",
help: "",
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ expression: "format!(\"{:#?}\", options)"
OptionHelp {
name: "key1",
ty: "str",
required: false,
default_value: "value",
required: true,
default_value: "\"value\"",
help: "help me",
},
OptionHelp {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
source: loader/src/tests.rs
expression: "format!(\"{:#?}\", options)"
---
[
OptionHelp {
name: "key1",
ty: "int",
required: false,
default_value: "123",
help: "help me",
},
]
3 changes: 3 additions & 0 deletions kclvm/loader/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,6 @@ a = option("key1", type="str", required=True, default="value", help="help me")
if True:
b = option("key2")
"#}
list_options_snapshot! {list_options_3, r#"
a = option("key1", type="int", required=False, default=123, help="help me")
"#}
2 changes: 1 addition & 1 deletion kclvm/loader/src/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pub(crate) fn get_call_args_bool(
index: usize,
key: Option<&str>,
) -> bool {
let val = get_call_args_strip_string(call_expr, index, key);
let val = get_call_args_string(call_expr, index, key);
val == "True" || val == "true"
}

Expand Down

0 comments on commit a1132d1

Please sign in to comment.