fileHandlingTest.c revision 294905
1
2#include "config.h"
3#include "stdlib.h"
4#include "sntptest.h"
5
6#include "fileHandlingTest.h" /* required because of the h.in thingy */
7
8#include <string.h>
9#include <unistd.h>
10
11const char *
12CreatePath(
13	const char *		filename,
14	enum DirectoryType 	argument
15	)
16{
17	const char 	srcdir[] = SRCDIR_DEF;//"@abs_srcdir@/data/";
18	size_t		plen = sizeof(srcdir) + strlen(filename) + 1;
19	char * 		path = emalloc(plen);
20	ssize_t		retc;
21
22	UNUSED_ARG(argument);
23
24	retc = snprintf(path, plen, "%s%s", srcdir, filename);
25	if (retc <= 0 || (size_t)retc >= plen)
26		exit(1);
27	return path;
28}
29
30
31void
32DestroyPath(
33	const char *	pathname
34	)
35{
36	/* use a union to get terminally rid of the 'const' attribute */
37	union {
38		const char *ccp;
39		void       *vp;
40	} any;
41
42	any.ccp = pathname;
43	free(any.vp);
44}
45
46
47int
48GetFileSize(
49	FILE *	file
50	)
51{
52	fseek(file, 0L, SEEK_END);
53	int length = ftell(file);
54	fseek(file, 0L, SEEK_SET);
55
56	return length;
57}
58
59
60bool
61CompareFileContent(
62	FILE *	expected,
63	FILE *	actual
64	)
65{
66	int currentLine = 1;
67
68	char actualLine[1024];
69	char expectedLine[1024];
70	size_t lenAct = sizeof actualLine;
71	size_t lenExp = sizeof expectedLine;
72
73	while (  ( (fgets(actualLine, lenAct, actual)) != NULL)
74	      && ( (fgets(expectedLine, lenExp, expected)) != NULL )
75	      ) {
76
77
78		if( strcmp(actualLine,expectedLine) !=0 ){
79			printf("Comparision failed on line %d",currentLine);
80			return FALSE;
81		}
82
83		currentLine++;
84	}
85
86	return TRUE;
87}
88
89
90void
91ClearFile(
92	const char * filename
93	)
94{
95	if (!truncate(filename, 0))
96		exit(1);
97}
98