Skip to content

Commit

Permalink
lit tests added
Browse files Browse the repository at this point in the history
  • Loading branch information
ghaith committed Feb 6, 2025
1 parent d43b231 commit dcd03c7
Show file tree
Hide file tree
Showing 13 changed files with 62 additions and 4 deletions.
6 changes: 2 additions & 4 deletions src/codegen/tests/oop_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ fn write_to_parent_variable_qualified_access() {
VAR
myFb : fb2;
END_VAR
myFb.x = 1;
myFb.x := 1;
END_FUNCTION_BLOCK
",
);
Expand Down Expand Up @@ -119,9 +119,7 @@ fn write_to_parent_variable_qualified_access() {
%myFb = getelementptr inbounds %foo, %foo* %0, i32 0, i32 0
%__BASE = getelementptr inbounds %fb2, %fb2* %myFb, i32 0, i32 0
%x = getelementptr inbounds %fb, %fb* %__BASE, i32 0, i32 0
%load_x = load i16, i16* %x, align 2
%1 = sext i16 %load_x to i32
%tmpVar = icmp eq i32 %1, 1
store i16 1, i16* %x, align 2
ret void
}
Expand Down
25 changes: 25 additions & 0 deletions tests/lit/single/oop/fb_access_members_from_base.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// RUN: (%COMPILE %s && %RUN) | %CHECK %s
FUNCTION_BLOCK fb
VAR
x : INT;
y : INT;
END_VAR
END_FUNCTION_BLOCK

FUNCTION_BLOCK fb2 EXTENDS fb
END_FUNCTION_BLOCK

FUNCTION_BLOCK foo
VAR
myFb : fb2;
END_VAR
myFb.x := 1;
printf('%d$N', myFb.x); //CHECK: 1
END_FUNCTION_BLOCK

FUNCTION main : DINT
VAR
fb :foo;
END_VAR
fb();
END_FUNCTION
35 changes: 35 additions & 0 deletions tests/lit/single/oop/fb_complex_access_of_super_members.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// RUN: (%COMPILE %s && %RUN) | %CHECK %s
FUNCTION_BLOCK grandparent
VAR
y : ARRAY[0..5] OF INT;
a : INT;
END_VAR
END_FUNCTION_BLOCK

FUNCTION_BLOCK parent extends grandparent
VAR
x : ARRAY[0..10] OF INT;
b : INT;
END_VAR
END_FUNCTION_BLOCK

FUNCTION_BLOCK child EXTENDS parent
VAR
z : ARRAY[0..10] OF INT;
END_VAR
y[b + z[b*2] - a] := 20;
b := 1;
z[b] := 3;
z[b*2] := 4;
a := 2;
y[b + z[b*2] - a] := 60;
printf('%d$N', y[0]); //CHECK: 20
printf('%d$N', y[3]); //CHECK: 60
END_FUNCTION_BLOCK

FUNCTION main : DINT
VAR
fb : child;
END_VAR
fb();
END_FUNCTION
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit dcd03c7

Please sign in to comment.