summaryrefslogtreecommitdiff
path: root/test/test_mem_cache_double_free.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-06-07 20:44:18 +0200
committerRichard Braun <rbraun@sceen.net>2013-06-07 20:44:18 +0200
commit271920aa32395874bb37145d3edb1158217095c9 (patch)
tree475b46ca857ea7903a9d818998871af7400d4bd9 /test/test_mem_cache_double_free.c
parentd7e9a6374fdbd90a0ee592fc4233549bb02dfc8c (diff)
Remove non data-structure code
The primary purpose of this project was testing code in userspace before pushing it to the x15 microkernel. The xprintf and phys modules were included quite some time ago now, along with the mem module which is also present in the GNU Mach microkernel. The secondary goal of this project was to create good implementations of commonly used data structures, mainly the doubly linked list and the red-black tree, under a BSD license so that they're reusable in proprietary projects I have to work on. Such generic code remains in this repository.
Diffstat (limited to 'test/test_mem_cache_double_free.c')
-rw-r--r--test/test_mem_cache_double_free.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/test/test_mem_cache_double_free.c b/test/test_mem_cache_double_free.c
deleted file mode 100644
index de356a3..0000000
--- a/test/test_mem_cache_double_free.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2010 Richard Braun.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <assert.h>
-#include <string.h>
-
-#include "../mem.h"
-#include "../macros.h"
-
-struct obj {
- unsigned long nr_refs;
- char name[16];
-};
-
-static void
-obj_ctor(void *ptr)
-{
- struct obj *obj;
-
- obj = ptr;
- obj->nr_refs = 0;
-}
-
-int
-main(int argc, char *argv[])
-{
- struct mem_cache *obj_cache;
- struct obj *obj;
-
- (void)argc;
- (void)argv;
-
- mem_setup();
-
- obj_cache = mem_cache_create("obj", sizeof(struct obj), 0,
- obj_ctor, NULL, MEM_CACHE_VERIFY);
-
- printf("trying normal alloc+free:\n");
- obj = mem_cache_alloc(obj_cache);
- mem_cache_free(obj_cache, obj);
-
- mem_cache_info(obj_cache);
-
- printf("trying alloc+double free:\n");
- obj = mem_cache_alloc(obj_cache);
- mem_cache_free(obj_cache, obj);
- mem_cache_free(obj_cache, obj);
-
- printf("done\n");
-
- return 0;
-}