first commit
This commit is contained in:
56
extern/STLport/5.2.1/test/unit/test_errno.cpp
vendored
Normal file
56
extern/STLport/5.2.1/test/unit/test_errno.cpp
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
//We are including stdlib.h and stddef.h first because under MSVC
|
||||
//those headers contains a errno macro definition without the underlying value
|
||||
//definition.
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <errno.h> // not typo, check errno def/undef/redef
|
||||
|
||||
#ifndef _STLP_WCE
|
||||
|
||||
#include "cppunit/cppunit_proxy.h"
|
||||
|
||||
//
|
||||
// TestCase class
|
||||
//
|
||||
class ErrnoTest : public CPPUNIT_NS::TestCase
|
||||
{
|
||||
CPPUNIT_TEST_SUITE(ErrnoTest);
|
||||
CPPUNIT_TEST(check);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
protected:
|
||||
void check();
|
||||
};
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(ErrnoTest);
|
||||
|
||||
void ErrnoTest::check()
|
||||
{
|
||||
//We are using ERANGE as it is part of the C++ ISO (see Table 26 in section 19.3)
|
||||
//Using ERANGE improve the test as it means that the native errno.h file has really
|
||||
//been included.
|
||||
errno = ERANGE;
|
||||
|
||||
CPPUNIT_ASSERT( errno == ERANGE );
|
||||
errno = 0;
|
||||
|
||||
/* Note: in common, you can't write ::errno or std::errno,
|
||||
* due to errno in most cases is just a macro, that frequently
|
||||
* (in MT environment errno is a per-thread value) expand to something like
|
||||
* (*__errno_location()). I don't know way how masquerade such
|
||||
* things: name of macro can't include ::.
|
||||
*
|
||||
* - ptr, 2005-03-30
|
||||
*/
|
||||
# if 0
|
||||
if ( ::errno != 0 ) {
|
||||
return 1;
|
||||
}
|
||||
if ( std::errno != 0 ) {
|
||||
return 1;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
#endif // _STLP_WCE
|
||||
Reference in New Issue
Block a user