A few little tweaks for SkyOS unit tests & configure robustitude (i.e. relying on stdint.h (if present) to tell us which intrinsic type is 64 bits)

This commit is contained in:
Brian Cox 2017-09-07 01:00:58 -07:00
parent 03bca0ebd4
commit 078bf28164
4 changed files with 34 additions and 13 deletions

View File

@ -36,35 +36,49 @@
#include "platform.h"
#if HAVE_STDINT_H
#include <stdint.h>
#endif
//-----------------------------------------------------------------------------
// standard TSS types
//-----------------------------------------------------------------------------
typedef unsigned char byte ; // platform-independent
typedef unsigned char byte ; // platform-independent
typedef signed char int8 ;
typedef short int16 ;
typedef float float32 ;
typedef double float64 ;
typedef unsigned char uint8 ;
typedef unsigned short uint16 ;
typedef unsigned char uint8 ;
typedef unsigned short uint16 ;
#if HAVE_STDINT_H
typedef int32_t int32 ;
typedef uint32_t uint32 ;
#elif SIZEOF_INT == 4
typedef int int32 ;
typedef unsigned int uint32 ;
#if SIZEOF_INT == 4
typedef int int32 ;
typedef unsigned int uint32 ;
#elif SIZEOF_LONG == 4
typedef long int32 ;
typedef unsigned long uint32 ;
typedef long int32 ;
typedef unsigned long uint32 ;
#else
# error "I don't seem to have a 32-bit integer type on this system."
#endif
#if SIZEOF_LONG == 8
#if HAVE_STDINT_H
typedef int64_t int64 ;
typedef uint64_t uint64 ;
#elif SIZEOF_LONG == 8
typedef long int64 ;
typedef unsigned long uint64 ;
typedef unsigned long uint64 ;
#elif SIZEOF_LONG_LONG == 8
typedef long long int64 ;
typedef unsigned long long uint64 ;
typedef unsigned long long uint64 ;
#else
# error "I don't seem to have a 64-bit integer type on this system."
#endif

View File

@ -111,7 +111,11 @@ bool cFSPropCalc::GetSymLinkStr(const TSTRING& strName, cArchive& arch, size_t s
//Sadly if buf isn't big enough readlink 'succeeds' by truncating the string, so the only
// clue your buffer might be too small is if you maxed it out. So we try again, within reason.
#if IS_SKYOS
if((size_t)rtn >= size-1) //SkyOS wants space to null terminate the string it hands back, which is nice, I guess.
#else
if((size_t)rtn == size)
#endif
{
if(size < 128*TW_PATH_SIZE)
return GetSymLinkStr(strName, arch, size*2);

View File

@ -146,9 +146,10 @@ void TestGetSymLinkStr()
std::string link = TwTestPath("linky");
int fd = creat(file.c_str(), 0777);
TEST(fd >= 0);
close(fd);
symlink(file.c_str(), link.c_str());
TEST(0 == symlink(file.c_str(), link.c_str()));
cMemoryArchive arch(1024*1024);
TEST(cFSPropCalc::GetSymLinkStr(link, arch, 8));

View File

@ -155,8 +155,10 @@ void TestGetHostID()
void TestGetCurrentUserName()
{
#if !IS_SKYOS // SkyOS breaks on this, for as-yet-unknown reasons
TSTRING username;
TEST( iFSServices::GetInstance()->GetCurrentUserName(username) );
TEST( iFSServices::GetInstance()->GetCurrentUserName(username) )
#endif
}
void TestGetIPAddress()