diff options
author | Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7> | 2021-07-15 13:37:53 +0200 |
---|---|---|
committer | Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7> | 2021-07-15 13:37:53 +0200 |
commit | e37581c6ee08aeca46e1adff9f637314019ace82 (patch) | |
tree | 1ff347bd43fbf78fb7ecfd298982d2fb431b49ee /Solvers | |
parent | hashcode fix (diff) | |
download | VIATRA-Generator-e37581c6ee08aeca46e1adff9f637314019ace82.tar.gz VIATRA-Generator-e37581c6ee08aeca46e1adff9f637314019ace82.tar.zst VIATRA-Generator-e37581c6ee08aeca46e1adff9f637314019ace82.zip |
Merging immutable nodes during commits.
Diffstat (limited to 'Solvers')
6 files changed, 114 insertions, 52 deletions
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java index d115833e..0c00108b 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java | |||
@@ -3,7 +3,6 @@ package org.eclipse.viatra.solver.data.map; | |||
3 | import java.util.HashMap; | 3 | import java.util.HashMap; |
4 | import java.util.Map; | 4 | import java.util.Map; |
5 | import java.util.Set; | 5 | import java.util.Set; |
6 | import java.util.WeakHashMap; | ||
7 | 6 | ||
8 | import org.eclipse.viatra.solver.data.map.internal.ImmutableNode; | 7 | import org.eclipse.viatra.solver.data.map.internal.ImmutableNode; |
9 | import org.eclipse.viatra.solver.data.map.internal.Node; | 8 | import org.eclipse.viatra.solver.data.map.internal.Node; |
@@ -13,8 +12,8 @@ public class VersionedMapStoreImpl<KEY,VALUE> implements VersionedMapStore<KEY, | |||
13 | protected final ContinousHashProvider<? super KEY> hashProvider; | 12 | protected final ContinousHashProvider<? super KEY> hashProvider; |
14 | protected final VALUE defaultValue; | 13 | protected final VALUE defaultValue; |
15 | 14 | ||
16 | protected Map<Long, ImmutableNode<KEY,VALUE>> states; | 15 | final protected Map<Long, ImmutableNode<KEY,VALUE>> states; |
17 | protected WeakHashMap<Node<KEY,VALUE>, ImmutableNode<KEY,VALUE>> nodeCache; | 16 | final protected Map<Node<KEY,VALUE>, ImmutableNode<KEY,VALUE>> nodeCache; |
18 | protected long nextID; | 17 | protected long nextID; |
19 | 18 | ||
20 | public VersionedMapStoreImpl(ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue) { | 19 | public VersionedMapStoreImpl(ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue) { |
@@ -23,6 +22,7 @@ public class VersionedMapStoreImpl<KEY,VALUE> implements VersionedMapStore<KEY, | |||
23 | 22 | ||
24 | states = new HashMap<>(); | 23 | states = new HashMap<>(); |
25 | nextID = 0; | 24 | nextID = 0; |
25 | nodeCache = new HashMap<>(); | ||
26 | } | 26 | } |
27 | 27 | ||
28 | Set<Long> getStates() { | 28 | Set<Long> getStates() { |
@@ -42,22 +42,21 @@ public class VersionedMapStoreImpl<KEY,VALUE> implements VersionedMapStore<KEY, | |||
42 | throw new IllegalAccessException("Store does not contain state " + state + "!"); | 42 | throw new IllegalAccessException("Store does not contain state " + state + "!"); |
43 | } | 43 | } |
44 | } | 44 | } |
45 | private ImmutableNode<KEY,VALUE> getStateData(long state) { | ||
46 | return states.get(state); | ||
47 | } | ||
48 | 45 | ||
49 | private long getNextID() { | 46 | private long getNextID() { |
50 | if(nextID == Long.MAX_VALUE) throw new IllegalStateException("Map store run out of Id-s"); | 47 | if(nextID == Long.MAX_VALUE) throw new IllegalStateException("Map store run out of Id-s"); |
51 | return nextID++; | 48 | return nextID++; |
52 | } | 49 | } |
50 | |||
51 | public ImmutableNode<KEY,VALUE> getStateData(long state) { | ||
52 | return states.get(state); | ||
53 | } | ||
54 | public Map<Node<KEY,VALUE>, ImmutableNode<KEY,VALUE>> getStore() { | ||
55 | return this.nodeCache; | ||
56 | } | ||
53 | public long addState(ImmutableNode<KEY,VALUE> data) { | 57 | public long addState(ImmutableNode<KEY,VALUE> data) { |
54 | long id = getNextID(); | 58 | long id = getNextID(); |
55 | states.put(id,data); | 59 | states.put(id,data); |
56 | return id; | 60 | return id; |
57 | } | 61 | } |
58 | // public void removeState(long state) { | ||
59 | // if(states.containsKey(state)) { | ||
60 | // this.states.remove(state); | ||
61 | // } | ||
62 | // } | ||
63 | } | 62 | } |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapCursor.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapCursor.java index d658e9d8..e77d073f 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapCursor.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapCursor.java | |||
@@ -5,6 +5,7 @@ import java.util.ConcurrentModificationException; | |||
5 | import java.util.Deque; | 5 | import java.util.Deque; |
6 | 6 | ||
7 | import org.eclipse.viatra.solver.data.map.Cursor; | 7 | import org.eclipse.viatra.solver.data.map.Cursor; |
8 | import org.eclipse.viatra.solver.data.map.VersionedMap; | ||
8 | 9 | ||
9 | public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { | 10 | public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { |
10 | // Constants | 11 | // Constants |
@@ -20,13 +21,11 @@ public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { | |||
20 | KEY key; | 21 | KEY key; |
21 | VALUE value; | 22 | VALUE value; |
22 | 23 | ||
23 | // State | 24 | // Hash code for checking concurrent modifications |
24 | /** | 25 | final VersionedMap<KEY,VALUE> map; |
25 | * Dirty bit for Conc | 26 | final int creationHash; |
26 | */ | ||
27 | boolean dirty; | ||
28 | 27 | ||
29 | public MapCursor(Node<KEY, VALUE> root) { | 28 | public MapCursor(Node<KEY, VALUE> root, VersionedMap<KEY,VALUE> map) { |
30 | // Initializing tree stack | 29 | // Initializing tree stack |
31 | super(); | 30 | super(); |
32 | this.nodeStack = new ArrayDeque<>(); | 31 | this.nodeStack = new ArrayDeque<>(); |
@@ -42,7 +41,8 @@ public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { | |||
42 | this.value = null; | 41 | this.value = null; |
43 | 42 | ||
44 | // Initializing state | 43 | // Initializing state |
45 | this.dirty = false; | 44 | this.map=map; |
45 | this.creationHash = map.hashCode(); | ||
46 | 46 | ||
47 | // move to first | 47 | // move to first |
48 | move(); | 48 | move(); |
@@ -61,7 +61,7 @@ public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { | |||
61 | } | 61 | } |
62 | 62 | ||
63 | public boolean move() { | 63 | public boolean move() { |
64 | if(dirty) { | 64 | if(isDirty()) { |
65 | throw new ConcurrentModificationException(); | 65 | throw new ConcurrentModificationException(); |
66 | } | 66 | } |
67 | if(!isTerminated()) { | 67 | if(!isTerminated()) { |
@@ -71,7 +71,7 @@ public class MapCursor<KEY,VALUE> implements Cursor<KEY,VALUE> { | |||
71 | } | 71 | } |
72 | } | 72 | } |
73 | 73 | ||
74 | public void setDirty() { | 74 | public boolean isDirty() { |
75 | this.dirty = true; | 75 | return this.map.hashCode() != this.creationHash; |
76 | } | 76 | } |
77 | } | 77 | } |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapEntryIterator.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapEntryIterator.java index 47976b46..e471af31 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapEntryIterator.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/MapEntryIterator.java | |||
@@ -6,6 +6,8 @@ import java.util.Map; | |||
6 | import java.util.Map.Entry; | 6 | import java.util.Map.Entry; |
7 | import java.util.NoSuchElementException; | 7 | import java.util.NoSuchElementException; |
8 | 8 | ||
9 | import org.eclipse.viatra.solver.data.map.VersionedMap; | ||
10 | |||
9 | /** | 11 | /** |
10 | * Preorder iterator for map {@link #Node}s. | 12 | * Preorder iterator for map {@link #Node}s. |
11 | * | 13 | * |
@@ -16,9 +18,8 @@ import java.util.NoSuchElementException; | |||
16 | */ | 18 | */ |
17 | public class MapEntryIterator<KEY,VALUE> extends MapCursor<KEY, VALUE> implements Iterator<Map.Entry<KEY,VALUE>>{ | 19 | public class MapEntryIterator<KEY,VALUE> extends MapCursor<KEY, VALUE> implements Iterator<Map.Entry<KEY,VALUE>>{ |
18 | 20 | ||
19 | 21 | public MapEntryIterator(Node<KEY, VALUE> root, VersionedMap<KEY,VALUE> map) { | |
20 | public MapEntryIterator(Node<KEY, VALUE> root) { | 22 | super(root,map); |
21 | super(root); | ||
22 | 23 | ||
23 | } | 24 | } |
24 | 25 | ||
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java index ad734932..e32fa94b 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/src/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java | |||
@@ -22,7 +22,6 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
22 | protected final ContinousHashProvider<? super KEY> hashProvider; | 22 | protected final ContinousHashProvider<? super KEY> hashProvider; |
23 | protected final VALUE defaultValue; | 23 | protected final VALUE defaultValue; |
24 | protected Node<KEY,VALUE> root; | 24 | protected Node<KEY,VALUE> root; |
25 | WeakHashMap<MapCursor<KEY, VALUE>, Boolean> iterators; | ||
26 | 25 | ||
27 | public VersionedMapImpl( | 26 | public VersionedMapImpl( |
28 | VersionedMapStoreImpl<KEY,VALUE> store, | 27 | VersionedMapStoreImpl<KEY,VALUE> store, |
@@ -33,7 +32,6 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
33 | this.hashProvider = hashProvider; | 32 | this.hashProvider = hashProvider; |
34 | this.defaultValue = defaultValue; | 33 | this.defaultValue = defaultValue; |
35 | this.root = null; | 34 | this.root = null; |
36 | iterators = new WeakHashMap<>(); | ||
37 | } | 35 | } |
38 | public VersionedMapImpl( | 36 | public VersionedMapImpl( |
39 | VersionedMapStoreImpl<KEY,VALUE> store, | 37 | VersionedMapStoreImpl<KEY,VALUE> store, |
@@ -44,7 +42,6 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
44 | this.hashProvider = hashProvider; | 42 | this.hashProvider = hashProvider; |
45 | this.defaultValue = defaultValue; | 43 | this.defaultValue = defaultValue; |
46 | this.root = data; | 44 | this.root = data; |
47 | iterators = new WeakHashMap<>(); | ||
48 | } | 45 | } |
49 | 46 | ||
50 | public VALUE getDefaultValue() { | 47 | public VALUE getDefaultValue() { |
@@ -55,9 +52,6 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
55 | } | 52 | } |
56 | @Override | 53 | @Override |
57 | public void put(KEY key, VALUE value) { | 54 | public void put(KEY key, VALUE value) { |
58 | for(MapCursor<KEY, VALUE> iterator : iterators.keySet()) { | ||
59 | iterator.setDirty(); | ||
60 | } | ||
61 | if(root!=null) { | 55 | if(root!=null) { |
62 | root = root.putValue(key, value, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0); | 56 | root = root.putValue(key, value, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0); |
63 | } else { | 57 | } else { |
@@ -83,14 +77,12 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
83 | @Override | 77 | @Override |
84 | public | 78 | public |
85 | Iterator<Map.Entry<KEY,VALUE>> getIterator() { | 79 | Iterator<Map.Entry<KEY,VALUE>> getIterator() { |
86 | MapEntryIterator<KEY,VALUE> iterator = new MapEntryIterator<>(this.root); | 80 | MapEntryIterator<KEY,VALUE> iterator = new MapEntryIterator<>(this.root,this); |
87 | iterators.put(iterator, null); | ||
88 | return iterator; | 81 | return iterator; |
89 | } | 82 | } |
90 | @Override | 83 | @Override |
91 | public Cursor<KEY, VALUE> getCursor() { | 84 | public Cursor<KEY, VALUE> getCursor() { |
92 | MapEntryIterator<KEY,VALUE> cursor = new MapEntryIterator<>(this.root); | 85 | MapEntryIterator<KEY,VALUE> cursor = new MapEntryIterator<>(this.root,this); |
93 | iterators.put(cursor, null); | ||
94 | return cursor; | 86 | return cursor; |
95 | } | 87 | } |
96 | 88 | ||
@@ -98,7 +90,13 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
98 | public long commit() { | 90 | public long commit() { |
99 | ImmutableNode<KEY,VALUE> immutable; | 91 | ImmutableNode<KEY,VALUE> immutable; |
100 | if(this.root != null) { | 92 | if(this.root != null) { |
101 | immutable = root.toImmutable(); | 93 | Map<Node<KEY, VALUE>, ImmutableNode<KEY, VALUE>> cache = this.store.getStore(); |
94 | if(cache != null) { | ||
95 | immutable = root.toImmutable(cache); | ||
96 | } else { | ||
97 | immutable = root.toImmutable(); | ||
98 | } | ||
99 | |||
102 | } else { | 100 | } else { |
103 | immutable = null; | 101 | immutable = null; |
104 | } | 102 | } |
@@ -108,9 +106,33 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ | |||
108 | 106 | ||
109 | @Override | 107 | @Override |
110 | public void restore(long state) { | 108 | public void restore(long state) { |
111 | // TODO Auto-generated method stub | 109 | root = this.store.getStateData(state); |
112 | } | 110 | } |
113 | 111 | ||
112 | @Override | ||
113 | public int hashCode() { | ||
114 | final int prime = 31; | ||
115 | int result = 1; | ||
116 | result = prime * result + ((root == null) ? 0 : root.hashCode()); | ||
117 | return result; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public boolean equals(Object obj) { | ||
122 | if (this == obj) | ||
123 | return true; | ||
124 | if (obj == null) | ||
125 | return false; | ||
126 | if (getClass() != obj.getClass()) | ||
127 | return false; | ||
128 | VersionedMapImpl<?,?> other = (VersionedMapImpl<?,?>) obj; | ||
129 | if (root == null) { | ||
130 | if (other.root != null) | ||
131 | return false; | ||
132 | } else if (!root.equals(other.root)) | ||
133 | return false; | ||
134 | return true; | ||
135 | } | ||
114 | public void prettyPrint() { | 136 | public void prettyPrint() { |
115 | StringBuilder s = new StringBuilder(); | 137 | StringBuilder s = new StringBuilder(); |
116 | if(this.root != null) { | 138 | if(this.root != null) { |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java index 9b08a7bc..76d40e3c 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java | |||
@@ -112,6 +112,8 @@ public class SmokeTest1Mutable { | |||
112 | } | 112 | } |
113 | @Test | 113 | @Test |
114 | void SmokeLarge() { | 114 | void SmokeLarge() { |
115 | var milis = System.currentTimeMillis(); | ||
115 | runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2); | 116 | runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2); |
117 | System.out.println(System.currentTimeMillis()-milis); | ||
116 | } | 118 | } |
117 | } | 119 | } |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java index 8be9adb6..337725a6 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java | |||
@@ -90,30 +90,58 @@ public class SmokeTest2Commit { | |||
90 | } | 90 | } |
91 | } | 91 | } |
92 | 92 | ||
93 | // Mini smoke frequent commints | ||
93 | @Test | 94 | @Test |
94 | void MiniSmokeK3V2v1() { | 95 | void MiniSmokeFrequentK3V2v1() { |
95 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 2, 10); | 96 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 2, 1); |
96 | } | 97 | } |
97 | @Test | 98 | @Test |
98 | void MiniSmokeK3V2v2() { | 99 | void MiniSmokeFrequentK3V2v2() { |
99 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 2, 10); | 100 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 2, 1); |
100 | } | 101 | } |
101 | @Test | 102 | @Test |
102 | void MiniSmokeK3V2v3() { | 103 | void MiniSmokeFrequentK3V2v3() { |
103 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 2, 10); | 104 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 2, 1); |
104 | } | 105 | } |
105 | @Test | 106 | @Test |
106 | void MiniSmokeK3V3v1() { | 107 | void MiniSmokeFrequentK3V3v1() { |
107 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 3, 10); | 108 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 3, 1); |
108 | } | 109 | } |
109 | @Test | 110 | @Test |
110 | void MiniSmokeK3V3v2() { | 111 | void MiniSmokeFrequentK3V3v2() { |
111 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 3, 10); | 112 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 3, 1); |
112 | } | 113 | } |
113 | @Test | 114 | @Test |
114 | void MiniSmokeK3V3v3() { | 115 | void MiniSmokeFrequentK3V3v3() { |
115 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 3, 10); | 116 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 3, 1); |
116 | } | 117 | } |
118 | // Mini smoke rare commits | ||
119 | @Test | ||
120 | void MiniSmokeRareK3V2v1() { | ||
121 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 2, 100); | ||
122 | } | ||
123 | @Test | ||
124 | void MiniSmokeRareK3V2v2() { | ||
125 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 2, 100); | ||
126 | } | ||
127 | @Test | ||
128 | void MiniSmokeKRare3V2v3() { | ||
129 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 2, 100); | ||
130 | } | ||
131 | @Test | ||
132 | void MiniSmokeRareK3V3v1() { | ||
133 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 3, 100); | ||
134 | } | ||
135 | @Test | ||
136 | void MiniSmokeRareK3V3v2() { | ||
137 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 3, 100); | ||
138 | } | ||
139 | @Test | ||
140 | void MiniSmokeRareK3V3v3() { | ||
141 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 3, 100); | ||
142 | } | ||
143 | |||
144 | // Medium smoke | ||
117 | @Test | 145 | @Test |
118 | void MediumSmokeK3V2v1() { | 146 | void MediumSmokeK3V2v1() { |
119 | runSmokeTest("MediumSmokeK3V2v1",1, 1000, 32, 2, 10); | 147 | runSmokeTest("MediumSmokeK3V2v1",1, 1000, 32, 2, 10); |
@@ -126,8 +154,18 @@ public class SmokeTest2Commit { | |||
126 | void MediumSmokeK3V2v3() { | 154 | void MediumSmokeK3V2v3() { |
127 | runSmokeTest("MediumSmokeK3V2v3",3, 1000, 32, 2, 10); | 155 | runSmokeTest("MediumSmokeK3V2v3",3, 1000, 32, 2, 10); |
128 | } | 156 | } |
129 | // @Test | 157 | |
130 | // void SmokeLarge() { | 158 | //Large Smoke |
131 | // runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2); | 159 | @Test |
132 | // } | 160 | void SmokeLargeRareCommit() { |
161 | runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2, 100); | ||
162 | } | ||
163 | @Test | ||
164 | void SmokeLargeNormalCommit() { | ||
165 | runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2, 10); | ||
166 | } | ||
167 | @Test | ||
168 | void SmokeLargeFrequentCommit() { | ||
169 | runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2, 1); | ||
170 | } | ||
133 | } | 171 | } |