Blame winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c

Packit 1fb8d4
Packit 1fb8d4
#include <stdio.h>
Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
#include <winpr/tchar.h>
Packit 1fb8d4
#include <winpr/environment.h>
Packit 1fb8d4
Packit 1fb8d4
int TestEnvironmentGetEnvironmentStrings(int argc, char* argv[])
Packit 1fb8d4
{
Packit Service 5a9772
	int r = -1;
Packit 1fb8d4
	TCHAR* p;
Packit Service 5a9772
	size_t length;
Packit 1fb8d4
	LPTCH lpszEnvironmentBlock;
Packit 1fb8d4
Packit Service 5a9772
	WINPR_UNUSED(argc);
Packit Service 5a9772
	WINPR_UNUSED(argv);
Packit Service 5a9772
Packit 1fb8d4
	lpszEnvironmentBlock = GetEnvironmentStrings();
Packit 1fb8d4
Packit Service 5a9772
	p = lpszEnvironmentBlock;
Packit 1fb8d4
Packit 1fb8d4
	while (p[0] && p[1])
Packit 1fb8d4
	{
Packit Service 5a9772
		const int rc = _sntprintf(NULL, 0, _T("%s\n"), p);
Packit Service 5a9772
		if (rc < 1)
Packit Service 5a9772
		{
Packit Service 5a9772
			_tprintf(_T("test failed: return %d\n"), rc);
Packit Service 5a9772
			goto fail;
Packit Service 5a9772
		}
Packit 1fb8d4
		length = _tcslen(p);
Packit Service 5a9772
		if (length != (size_t)(rc - 1))
Packit Service 5a9772
		{
Packit Service 5a9772
			_tprintf(_T("test failed: length %") _T(PRIuz) _T(" != %d [%s]\n"), length, rc - 1, p);
Packit Service 5a9772
			goto fail;
Packit Service 5a9772
		}
Packit 1fb8d4
		p += (length + 1);
Packit 1fb8d4
	}
Packit 1fb8d4
Packit Service 5a9772
	r = 0;
Packit Service 5a9772
fail:
Packit 1fb8d4
	FreeEnvironmentStrings(lpszEnvironmentBlock);
Packit 1fb8d4
Packit Service 5a9772
	return r;
Packit 1fb8d4
}