BUG-7464: cleanup and disable instantiation speed test
[yangtools.git] / third-party / triemap / src / test / java / org / opendaylight / yangtools / triemap / TestMultiThreadInserts.java
1 /*
2  * (C) Copyright 2016 Pantheon Technologies, s.r.o. and others.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.opendaylight.yangtools.triemap;
17
18 import java.util.concurrent.ExecutorService;
19 import java.util.concurrent.Executors;
20 import java.util.concurrent.TimeUnit;
21 import org.junit.Test;
22
23 public class TestMultiThreadInserts {
24     @Test
25     public void testMultiThreadInserts () {
26         final int nThreads = 2;
27         final ExecutorService es = Executors.newFixedThreadPool (nThreads);
28         final TrieMap<Object, Object> bt = new TrieMap<> ();
29         for (int i = 0; i < nThreads; i++) {
30             final int threadNo = i;
31             es.execute (new Runnable () {
32                 @Override
33                 public void run () {
34                     for (int j = 0; j < 500 * 1000; j++) {
35                         if (j % nThreads == threadNo) {
36                             bt.put (Integer.valueOf (j), Integer.valueOf (j));
37                         }
38                     }
39                 }
40             });
41         }
42
43         es.shutdown ();
44         try {
45             es.awaitTermination (3600L, TimeUnit.SECONDS);
46         } catch (final InterruptedException e) {
47             e.printStackTrace ();
48         }
49
50         for (int j = 0; j < 500 * 1000; j++) {
51             final Object lookup = bt.lookup (Integer.valueOf (j));
52             TestHelper.assertEquals (Integer.valueOf (j), lookup);
53         }
54     }
55 }