Skip to content

Commit 611660a

Browse files
author
Antonio Almeida
committed
Added tests, one failing and one correct
1 parent 6ddeb9a commit 611660a

3 files changed

Lines changed: 55 additions & 2 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import specification.*;
2+
import java.util.LinkedList;
3+
4+
public class LinkedListRefinement {
5+
@Unique Object o1;
6+
7+
public Object test(Object obj, Object obj2, @Free Object temp) {
8+
LinkedList<Object> list = new LinkedList<>();
9+
10+
list.add(obj);
11+
list.add(obj);
12+
list.add(1, obj2);
13+
14+
list.remove(temp);
15+
}
16+
}
17+
18+
@ExternalRefinementsFor("java.util.LinkedList")
19+
interface LinkedListRefinements2<T> {
20+
21+
public void add(@Shared T t);
22+
23+
public void add(int n, @Shared T t);
24+
25+
public void remove(@Free T t);
26+
27+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import specification.*;
2+
import java.util.LinkedList;
3+
4+
public class LinkedListRefinementIncorrect {
5+
@Unique Object o1;
6+
7+
public Object test(@Free Object obj) {
8+
Object o2 = o1;
9+
LinkedList<Object> list = new LinkedList<>();
10+
11+
list.add(obj);
12+
list.add(o2);
13+
}
14+
}
15+
16+
@ExternalRefinementsFor("java.util.LinkedList")
17+
interface LinkedListRefinements<T> {
18+
19+
public void add(@Free T t);
20+
21+
public void add(int n, T t);
22+
23+
public void remove(@Free T t);
24+
}

latte/src/test/java/AppTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ private static Stream<Arguments> provideCorrectTestCases() {
4040
Arguments.of("src/test/examples/searching_state_space/TimerTaskCannotReschedule.java"),
4141
Arguments.of("src/test/examples/searching_state_space/ResultSetNoNext.java"),
4242
Arguments.of("src/test/examples/searching_state_space/ResultSetForwardOnly.java"),
43-
Arguments.of("src/test/examples/stack_overflow/MediaRecord.java")
43+
Arguments.of("src/test/examples/stack_overflow/MediaRecord.java"),
44+
Arguments.of("src/test/examples/LinkedListRefinement.java")
4445
);
4546
}
4647

@@ -60,7 +61,8 @@ private static Stream<Arguments> provideIncorrectTestCases() {
6061
Arguments.of("src/test/examples/SmallestIncorrectExample.java", "UNIQUE but got BORROWED"),
6162
Arguments.of("src/test/examples/MyStackFieldAssignMethod.java", "UNIQUE but got SHARED"),
6263
Arguments.of("src/test/examples/FieldAccessNoThis.java", "UNIQUE but got SHARED"),
63-
Arguments.of("src/test/examples/FieldAccessRightNoThis.java", "FREE but got UNIQUE")
64+
Arguments.of("src/test/examples/FieldAccessRightNoThis.java", "FREE but got UNIQUE"),
65+
Arguments.of("src/test/examples/LinkedListRefinementIncorrect.java", "FREE but got UNIQUE")
6466
);
6567
}
6668

0 commit comments

Comments
 (0)