[asterisk-commits] dlee: branch dlee/tempnam-deprecation r401700 - /team/dlee/tempnam-deprecatio...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Oct 23 18:05:59 CDT 2013


Author: dlee
Date: Wed Oct 23 18:05:57 2013
New Revision: 401700

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=401700
Log:
Fix tempnam deprecation

Modified:
    team/dlee/tempnam-deprecation/tests/test_json.c

Modified: team/dlee/tempnam-deprecation/tests/test_json.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/tempnam-deprecation/tests/test_json.c?view=diff&rev=401700&r1=401699&r2=401700
==============================================================================
--- team/dlee/tempnam-deprecation/tests/test_json.c (original)
+++ team/dlee/tempnam-deprecation/tests/test_json.c Wed Oct 23 18:05:57 2013
@@ -40,6 +40,9 @@
 #include "asterisk/json.h"
 #include "asterisk/module.h"
 #include "asterisk/test.h"
+
+#include <stdio.h>
+#include <unistd.h>
 
 #define CATEGORY "/main/json/"
 
@@ -1208,11 +1211,33 @@
 	return 0;
 }
 
+static FILE *mkstemp_file(char *template, const char *mode)
+{
+	int fd = mkstemp(template);
+	FILE *file;
+
+	if (fd < 0) {
+		ast_log(LOG_ERROR, "Failed to create temp file: %s\n",
+			strerror(errno));
+		return NULL;
+	}
+
+	file = fdopen(fd, mode);
+	if (!file) {
+		ast_log(LOG_ERROR, "Failed to create temp file: %s\n",
+			strerror(errno));
+		return NULL;
+	}
+
+	return file;
+}
+
 AST_TEST_DEFINE(json_test_dump_load_file)
 {
 	RAII_VAR(struct ast_json *, uut, NULL, ast_json_unref);
 	RAII_VAR(struct ast_json *, expected, NULL, ast_json_unref);
-	RAII_VAR(char *, filename, NULL, free);
+	char filename[] = "/tmp/ast_json.XXXXXX";
+	RAII_VAR(char *, rm_on_exit, filename, unlink);
 	RAII_VAR(FILE *, file, NULL, safe_fclose);
 	int uut_res;
 
@@ -1229,12 +1254,13 @@
 
 	/* dump/load file */
 	expected = ast_json_pack("{ s: i }", "one", 1);
-	filename = tempnam(NULL, "ast-json");
-	file = fopen(filename, "w");
+	file = mkstemp_file(filename, "w");
+	ast_test_validate(test, NULL != file);
 	uut_res = ast_json_dump_file(expected, file);
 	ast_test_validate(test, 0 == uut_res);
 	fclose(file);
 	file = fopen(filename, "r");
+	ast_test_validate(test, NULL != file);
 	uut = ast_json_load_file(file, NULL);
 	ast_test_validate(test, ast_json_equal(expected, uut));
 
@@ -1245,7 +1271,9 @@
 {
 	RAII_VAR(struct ast_json *, uut, NULL, ast_json_unref);
 	RAII_VAR(struct ast_json *, expected, NULL, ast_json_unref);
-	RAII_VAR(char *, filename, NULL, free);
+	char filename[] = "/tmp/ast_json.XXXXXX";
+	RAII_VAR(char *, rm_on_exit, filename, unlink);
+	RAII_VAR(FILE *, file, NULL, safe_fclose);
 	int uut_res;
 
 	switch (cmd) {
@@ -1261,7 +1289,8 @@
 
 	/* dump/load filename */
 	expected = ast_json_pack("{ s: i }", "one", 1);
-	filename = tempnam(NULL, "ast-json");
+	file = mkstemp_file(filename, "w");
+	ast_test_validate(test, NULL != file);
 	uut_res = ast_json_dump_new_file(expected, filename);
 	ast_test_validate(test, 0 == uut_res);
 	uut = ast_json_load_new_file(filename, NULL);
@@ -1273,7 +1302,8 @@
 AST_TEST_DEFINE(json_test_dump_load_null)
 {
 	RAII_VAR(struct ast_json *, uut, NULL, ast_json_unref);
-	RAII_VAR(char *, filename, NULL, free);
+	char filename[] = "/tmp/ast_json.XXXXXX";
+	RAII_VAR(char *, rm_on_exit, filename, unlink);
 	RAII_VAR(FILE *, file, NULL, safe_fclose);
 
 	switch (cmd) {
@@ -1290,8 +1320,8 @@
 	/* dump/load NULL tests */
 	uut = ast_json_load_string("{ \"one\": 1 }", NULL);
 	ast_test_validate(test, NULL != uut);
-	filename = tempnam(NULL, "ast-json");
-	file = fopen(filename, "w");
+	file = mkstemp_file(filename, "w");
+	ast_test_validate(test, NULL != file);
 	ast_test_validate(test, NULL == ast_json_dump_string(NULL));
 	ast_test_validate(test, -1 == ast_json_dump_file(NULL, file));
 	ast_test_validate(test, -1 == ast_json_dump_file(uut, NULL));




More information about the asterisk-commits mailing list