From 62f38b71646885f2c82486af19408df0cf218b71 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> Date: Mon, 6 May 2024 23:39:23 +0800 Subject: [PATCH 1/6] initial commit Signed-off-by: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> --- kclvm/runtime/src/_kclvm.h | 2 ++ kclvm/runtime/src/_kclvm.ll | 2 ++ kclvm/runtime/src/_kclvm.rs | 1 + kclvm/runtime/src/_kclvm_addr.rs | 1 + kclvm/runtime/src/_kclvm_api_spec.rs | 4 ++++ kclvm/runtime/src/file/mod.rs | 28 +++++++++++++++++++++++++ kclvm/sema/src/builtin/system_module.rs | 14 +++++++++++++ 7 files changed, 52 insertions(+) diff --git a/kclvm/runtime/src/_kclvm.h b/kclvm/runtime/src/_kclvm.h index 9593ed524..d82547f9b 100644 --- a/kclvm/runtime/src/_kclvm.h +++ b/kclvm/runtime/src/_kclvm.h @@ -322,6 +322,8 @@ kclvm_value_ref_t* kclvm_file_mv(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kclvm_file_read(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); + + kclvm_value_ref_t* kclvm_file_workdir(kclvm_context_t* ctx, kclvm_value_ref_t* _args, kclvm_value_ref_t* _kwargs); kclvm_value_ref_t* kclvm_iterator_cur_key(kclvm_iterator_t* p); diff --git a/kclvm/runtime/src/_kclvm.ll b/kclvm/runtime/src/_kclvm.ll index b1e6eb6ff..5a99b1ea5 100644 --- a/kclvm/runtime/src/_kclvm.ll +++ b/kclvm/runtime/src/_kclvm.ll @@ -270,6 +270,8 @@ declare %kclvm_value_ref_t* @kclvm_file_mv(%kclvm_context_t* %ctx, %kclvm_value_ declare %kclvm_value_ref_t* @kclvm_file_read(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs); +declare %kclvm_value_ref_t* @kclvm_file_size(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs); + declare %kclvm_value_ref_t* @kclvm_file_workdir(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %_args, %kclvm_value_ref_t* %_kwargs); declare %kclvm_value_ref_t* @kclvm_iterator_cur_key(%kclvm_iterator_t* %p); diff --git a/kclvm/runtime/src/_kclvm.rs b/kclvm/runtime/src/_kclvm.rs index bc0c9660f..b258fa9fb 100644 --- a/kclvm/runtime/src/_kclvm.rs +++ b/kclvm/runtime/src/_kclvm.rs @@ -146,6 +146,7 @@ pub enum ApiFunc { kclvm_file_modpath, kclvm_file_mv, kclvm_file_read, + kclvm_file_size, kclvm_file_workdir, kclvm_iterator_cur_key, kclvm_iterator_cur_value, diff --git a/kclvm/runtime/src/_kclvm_addr.rs b/kclvm/runtime/src/_kclvm_addr.rs index 818c5bb15..72a2dda96 100644 --- a/kclvm/runtime/src/_kclvm_addr.rs +++ b/kclvm/runtime/src/_kclvm_addr.rs @@ -151,6 +151,7 @@ pub fn _kclvm_get_fn_ptr_by_name(name: &str) -> u64 { "kclvm_file_modpath" => crate::kclvm_file_modpath as *const () as u64, "kclvm_file_mv" => crate::kclvm_file_mv as *const () as u64, "kclvm_file_read" => crate::kclvm_file_read as *const () as u64, + "kclvm_file_size" => crate::kclvm_file_size as *const () as u64, "kclvm_file_workdir" => crate::kclvm_file_workdir as *const () as u64, "kclvm_iterator_cur_key" => crate::kclvm_iterator_cur_key as *const () as u64, "kclvm_iterator_cur_value" => crate::kclvm_iterator_cur_value as *const () as u64, diff --git a/kclvm/runtime/src/_kclvm_api_spec.rs b/kclvm/runtime/src/_kclvm_api_spec.rs index c86976bb1..2ef978406 100644 --- a/kclvm/runtime/src/_kclvm_api_spec.rs +++ b/kclvm/runtime/src/_kclvm_api_spec.rs @@ -1238,6 +1238,10 @@ // api-spec(c): kclvm_value_ref_t* kclvm_file_mv(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); // api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_file_mv(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs); +// api-spec: kclvm_file_size +// api-spec(c): kclvm_value_ref_t* kclvm_file_size(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); +// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_file_size(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs); + // api-spec: kclvm_template_execute // api-spec(c): kclvm_value_ref_t* kclvm_template_execute(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); // api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_template_execute(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs); diff --git a/kclvm/runtime/src/file/mod.rs b/kclvm/runtime/src/file/mod.rs index a37951550..0474be0df 100644 --- a/kclvm/runtime/src/file/mod.rs +++ b/kclvm/runtime/src/file/mod.rs @@ -241,3 +241,31 @@ pub extern "C" fn kclvm_file_mv( panic!("mv() missing 'src_path' argument"); } } + +#[no_mangle] +#[runtime_fn] +pub extern "C" fn kclvm_file_size( + ctx: *mut kclvm_context_t, + args: *const kclvm_value_ref_t, + kwargs: *const kclvm_value_ref_t, +) -> *const kclvm_value_ref_t { + let args = ptr_as_ref(args); + let kwargs = ptr_as_ref(kwargs); + let ctx = mut_ptr_as_ref(ctx); + + if let Some(path) = get_call_arg_str(args, kwargs, 0, Some("filepath")) { + let metadata = fs::metadata(&path); + match metadata { + Ok(metadata) => { + let size = metadata.len(); + let value = kclvm::ValueRef::int(size as i64); + return value.into_raw(ctx); + } + Err(e) => { + panic!("failed to get size of '{}': {}", path, e); + } + } + } + + panic!("size() takes exactly one argument (0 given)"); +} diff --git a/kclvm/sema/src/builtin/system_module.rs b/kclvm/sema/src/builtin/system_module.rs index 2ef93d24b..6fe69396f 100644 --- a/kclvm/sema/src/builtin/system_module.rs +++ b/kclvm/sema/src/builtin/system_module.rs @@ -1709,6 +1709,20 @@ register_file_member! { false, None, ) + size => Type::function( + None, + Type::any_ref(), + &[ + Parameter { + name: "filepath".to_string(), + ty: Type::str_ref(), + has_default: false, + }, + ], + r#"Get the size of a file at the specified path."#, + false, + None, + ) } // ------------------------------ From 5577674f8fcbdb289fefb2960a0ba39df96074af Mon Sep 17 00:00:00 2001 From: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> Date: Tue, 7 May 2024 01:05:42 +0800 Subject: [PATCH 2/6] updation on kclvm.h Signed-off-by: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> --- kclvm/runtime/src/_kclvm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kclvm/runtime/src/_kclvm.h b/kclvm/runtime/src/_kclvm.h index d82547f9b..2eab490f1 100644 --- a/kclvm/runtime/src/_kclvm.h +++ b/kclvm/runtime/src/_kclvm.h @@ -322,7 +322,7 @@ kclvm_value_ref_t* kclvm_file_mv(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kclvm_file_read(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); - +kclvm_value_ref_t* kclvm_file_size(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs); kclvm_value_ref_t* kclvm_file_workdir(kclvm_context_t* ctx, kclvm_value_ref_t* _args, kclvm_value_ref_t* _kwargs); From b0d0088115615a6754c3236ac938f31509650ce5 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> Date: Tue, 7 May 2024 01:13:16 +0800 Subject: [PATCH 3/6] added test Signed-off-by: JeevaRamanathan <64531160+JeevaRamanathan@users.noreply.github.com> --- test/grammar/builtins/file/size/main.k | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test/grammar/builtins/file/size/main.k diff --git a/test/grammar/builtins/file/size/main.k b/test/grammar/builtins/file/size/main.k new file mode 100644 index 000000000..f27353623 --- /dev/null +++ b/test/grammar/builtins/file/size/main.k @@ -0,0 +1,3 @@ +import file + +file.size("source_file.txt") From 4cf345d786efdf2073152ffb0226d34cb2931325 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Tue, 7 May 2024 01:19:06 +0800 Subject: [PATCH 4/6] config username-email Signed-off-by: JeevaRamanathan From 9ba6e0bd6bfeb8f5015ee60e04ed3b3472b41ed2 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Tue, 7 May 2024 02:17:29 +0800 Subject: [PATCH 5/6] changed type and added stdout.golden Signed-off-by: JeevaRamanathan --- kclvm/sema/src/builtin/system_module.rs | 2 +- test/grammar/builtins/file/size/stdout.golden | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 test/grammar/builtins/file/size/stdout.golden diff --git a/kclvm/sema/src/builtin/system_module.rs b/kclvm/sema/src/builtin/system_module.rs index 6fe69396f..aba5ba989 100644 --- a/kclvm/sema/src/builtin/system_module.rs +++ b/kclvm/sema/src/builtin/system_module.rs @@ -1711,7 +1711,7 @@ register_file_member! { ) size => Type::function( None, - Type::any_ref(), + Type::int_ref(), &[ Parameter { name: "filepath".to_string(), diff --git a/test/grammar/builtins/file/size/stdout.golden b/test/grammar/builtins/file/size/stdout.golden new file mode 100644 index 000000000..e69de29bb From 20360adb84ca0c39eae1f0df08ffa2a9db7706e9 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Tue, 7 May 2024 03:17:08 +0800 Subject: [PATCH 6/6] updated tests Signed-off-by: JeevaRamanathan --- kclvm/api/src/service/service_impl.rs | 6 +- .../kclvm_loader__tests__assign_stmt_0.snap | 2 +- .../kclvm_loader__tests__assign_stmt_1.snap | 2 +- .../kclvm_loader__tests__assign_stmt_2.snap | 2 +- .../kclvm_loader__tests__builtin_call_0.snap | 28 +++--- .../kclvm_loader__tests__builtin_call_1.snap | 90 +++++++++--------- .../kclvm_loader__tests__builtin_call_2.snap | 94 +++++++++---------- .../kclvm_loader__tests__import_stmt_0.snap | 2 +- .../kclvm_loader__tests__import_stmt_1.snap | 2 +- test/grammar/builtins/file/size/main.k | 1 + test/grammar/builtins/file/size/stderr.golden | 1 + test/grammar/builtins/file/size/stdout.golden | 1 + test/grammar/builtins/file/size/test_file.txt | 1 + 13 files changed, 118 insertions(+), 114 deletions(-) create mode 100644 test/grammar/builtins/file/size/stderr.golden create mode 100644 test/grammar/builtins/file/size/test_file.txt diff --git a/kclvm/api/src/service/service_impl.rs b/kclvm/api/src/service/service_impl.rs index cad03d452..a7046e969 100644 --- a/kclvm/api/src/service/service_impl.rs +++ b/kclvm/api/src/service/service_impl.rs @@ -176,9 +176,9 @@ impl KclvmServiceImpl { /// assert_eq!(result.type_errors.len(), 0); /// assert_eq!(result.symbols.len(), 12); /// assert_eq!(result.scopes.len(), 3); - /// assert_eq!(result.node_symbol_map.len(), 173); - /// assert_eq!(result.symbol_node_map.len(), 173); - /// assert_eq!(result.fully_qualified_name_map.len(), 182); + /// assert_eq!(result.node_symbol_map.len(), 175); + /// assert_eq!(result.symbol_node_map.len(), 175); + /// assert_eq!(result.fully_qualified_name_map.len(), 184); /// assert_eq!(result.pkg_scope_map.len(), 3); /// ``` #[inline] diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap index fd0184844..e8347b05b 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap index 2ce08ead4..d3fa1f723 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap index 16d643c74..3d512da1c 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap index 340b2f06e..96db0f3f7 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap @@ -88,20 +88,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -291,6 +277,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap index a9b2b2d76..df6cfe8ec 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, @@ -180,20 +180,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -383,6 +369,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -415,27 +415,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 162, + index: 164, generation: 0, }, kind: Value, }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -625,6 +611,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -664,20 +664,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -867,6 +853,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -899,7 +899,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 165, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap index 80fa82647..773616084 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap @@ -99,7 +99,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, @@ -240,7 +240,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 162, + index: 164, generation: 0, }, kind: Value, @@ -337,7 +337,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, @@ -382,20 +382,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -585,6 +571,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -617,27 +617,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 165, generation: 0, }, kind: Value, }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -827,6 +813,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -866,20 +866,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ - SymbolRef { - id: Index { - index: 132, - generation: 0, - }, - kind: Value, - }, - SymbolRef { - id: Index { - index: 133, - generation: 0, - }, - kind: Value, - }, SymbolRef { id: Index { index: 134, @@ -1069,6 +1055,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, + SymbolRef { + id: Index { + index: 161, + generation: 0, + }, + kind: Value, + }, + SymbolRef { + id: Index { + index: 162, + generation: 0, + }, + kind: Value, + }, ], is_global: false, }, @@ -1101,7 +1101,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 164, + index: 166, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap index a696d720e..34d7145b8 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap @@ -195,7 +195,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap index d91e6dc3a..2a8b9e551 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 161, + index: 163, generation: 0, }, kind: Value, diff --git a/test/grammar/builtins/file/size/main.k b/test/grammar/builtins/file/size/main.k index f27353623..92d2adb15 100644 --- a/test/grammar/builtins/file/size/main.k +++ b/test/grammar/builtins/file/size/main.k @@ -1,3 +1,4 @@ import file file.size("source_file.txt") +file.size("test_file.txt") diff --git a/test/grammar/builtins/file/size/stderr.golden b/test/grammar/builtins/file/size/stderr.golden new file mode 100644 index 000000000..7c27d0cb0 --- /dev/null +++ b/test/grammar/builtins/file/size/stderr.golden @@ -0,0 +1 @@ +size: failed to get size of 'source_file.txt': No such file or directory \ No newline at end of file diff --git a/test/grammar/builtins/file/size/stdout.golden b/test/grammar/builtins/file/size/stdout.golden index e69de29bb..b39356075 100644 --- a/test/grammar/builtins/file/size/stdout.golden +++ b/test/grammar/builtins/file/size/stdout.golden @@ -0,0 +1 @@ +23 \ No newline at end of file diff --git a/test/grammar/builtins/file/size/test_file.txt b/test/grammar/builtins/file/size/test_file.txt new file mode 100644 index 000000000..05303ef85 --- /dev/null +++ b/test/grammar/builtins/file/size/test_file.txt @@ -0,0 +1 @@ +This is a sample file.