    @Test public void testDeallocator() throws InterruptedException {

        System.out.println("Deallocator");

        final boolean[] failed = { false };
        ExecutorService pool = Executors.newFixedThreadPool(24);
        for (int i = 0; i < 24; i++) {
            pool.execute(new Runnable() {
                @Override public void run() {
                    try {
                        for (int i = 0; i < 2000; i++) {
                            new BytePointer(2000000);
                        }
                    } catch (OutOfMemoryError e) {
                        failed[0] = true;
                        fail(e.getMessage());
                    }
                }
            });
        }
        pool.shutdown();
        pool.awaitTermination(1, TimeUnit.MINUTES);
        if (failed[0]) {
            fail("OutOfMemoryError should not have been thrown.");
        }
    }