On 09/28/2012 10:44 AM, Chad Versace wrote:
Memory allocation should rarely fail, but when it does the test should
immediately abort and explain why. This patch defines two utility wrapper
functions, piglit_malloc() and piglit_calloc(), that do exactly that when
allocation fails.

Signed-off-by: Chad Versace <[email protected]>
---
  tests/util/piglit-util.c | 26 ++++++++++++++++++++++++++
  tests/util/piglit-util.h | 15 +++++++++++++++
  2 files changed, 41 insertions(+)

diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
index 891ae22..e0e6c96 100644
--- a/tests/util/piglit-util.c
+++ b/tests/util/piglit-util.c
@@ -406,3 +406,29 @@ write_null:
        va_end(va);
        return size_written;
  }
+
+void*
+piglit_malloc(size_t size)
+{
+       void *x = malloc(size);
+
+       if (x == NULL) {
+               fprintf(stderr, "piglit: error: allocation failed\n");
+               abort();
+       }
+
+       return x;
+}
+
+void*
+piglit_calloc(size_t size)
+{
+       void *x = calloc(1, size);
+
+       if (x == NULL) {
+               fprintf(stderr, "piglit: error: allocation failed\n");
+               abort();
+       }
+
+       return x;
+}

I am really not a fan of malloc/calloc wrappers. This change is well-intentioned, but I don't believe I've ever seen this work out in practice.

Mesa used to have malloc wrappers. We removed them. X has wrappers. People always wonder whether they have to use Xfree/Xmalloc or if they can just use plain malloc/free. People wonder what the difference is. At the end of the day, projects don't end up using them consistently, at which point it's questionable whether it's worth having them.

If a program runs out of memory, it will likely die. In my experience, it's not hard to tell when that happens.

Nacked-by: Kenneth Graunke <[email protected]>
_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to