Merge branch 'travis-ansi'
Add ANSI build to Travis CI and make it pass. See https://github.com/wxWidgets/wxWidgets/pull/2093
This commit is contained in:
@@ -34,6 +34,10 @@ jobs:
|
|||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: wxGTK_VERSION=3 wxTOOLSET=cmake wxCMAKE_GENERATOR="Unix Makefiles"
|
env: wxGTK_VERSION=3 wxTOOLSET=cmake wxCMAKE_GENERATOR="Unix Makefiles"
|
||||||
name: wxGTK 3 CMake Ubuntu 18.04
|
name: wxGTK 3 CMake Ubuntu 18.04
|
||||||
|
- dist: focal
|
||||||
|
compiler: gcc
|
||||||
|
env: wxCONFIGURE_FLAGS="--disable-compat30 --disable-optimise --disable-unicode" wxSKIP_SAMPLES=1
|
||||||
|
name: wxGTK ANSI Ubuntu 20.04
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
@@ -339,9 +339,10 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_)
|
|||||||
|
|
||||||
|
|
||||||
bool init_result;
|
bool init_result;
|
||||||
int i;
|
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
|
int i;
|
||||||
|
|
||||||
// gtk_init() wants UTF-8, not wchar_t, so convert
|
// gtk_init() wants UTF-8, not wchar_t, so convert
|
||||||
char **argvGTK = new char *[argc_ + 1];
|
char **argvGTK = new char *[argc_ + 1];
|
||||||
for ( i = 0; i < argc_; i++ )
|
for ( i = 0; i < argc_; i++ )
|
||||||
|
@@ -423,7 +423,10 @@
|
|||||||
GCC_TURN_OFF(padded)
|
GCC_TURN_OFF(padded)
|
||||||
#endif // gcc >= 4.6
|
#endif // gcc >= 4.6
|
||||||
|
|
||||||
#if !wxUSE_UTF8_LOCALE_ONLY
|
// ANSI build hasn't been updated to work without implicit wxString encoding
|
||||||
|
// and never will be, as it will be removed soon anyhow. And in UTF-8-only
|
||||||
|
// build we actually want to use implicit encoding (UTF-8).
|
||||||
|
#if wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY
|
||||||
#define wxNO_IMPLICIT_WXSTRING_ENCODING
|
#define wxNO_IMPLICIT_WXSTRING_ENCODING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -86,7 +86,9 @@ private:
|
|||||||
const wxString& destFilePath);
|
const wxString& destFilePath);
|
||||||
|
|
||||||
wxString m_fileNameASCII;
|
wxString m_fileNameASCII;
|
||||||
|
#if wxUSE_UNICODE
|
||||||
wxString m_fileNameNonASCII;
|
wxString m_fileNameNonASCII;
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
wxString m_fileNameWork;
|
wxString m_fileNameWork;
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(FileFunctionsTestCase);
|
wxDECLARE_NO_COPY_CLASS(FileFunctionsTestCase);
|
||||||
@@ -110,10 +112,12 @@ void FileFunctionsTestCase::setUp()
|
|||||||
wxFileName fn1(wxFileName::GetTempDir(), wxT("wx_file_mask.txt"));
|
wxFileName fn1(wxFileName::GetTempDir(), wxT("wx_file_mask.txt"));
|
||||||
m_fileNameASCII = fn1.GetFullPath();
|
m_fileNameASCII = fn1.GetFullPath();
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
// This file name is 'wx_file_mask.txt' in Russian.
|
// This file name is 'wx_file_mask.txt' in Russian.
|
||||||
wxFileName fn2(wxFileName::GetTempDir(),
|
wxFileName fn2(wxFileName::GetTempDir(),
|
||||||
wxT("wx_\u043C\u0430\u0441\u043A\u0430_\u0444\u0430\u0439\u043B\u0430.txt"));
|
wxT("wx_\u043C\u0430\u0441\u043A\u0430_\u0444\u0430\u0439\u043B\u0430.txt"));
|
||||||
m_fileNameNonASCII = fn2.GetFullPath();
|
m_fileNameNonASCII = fn2.GetFullPath();
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
wxFileName fn3(wxFileName::GetTempDir(), wxT("wx_test_copy"));
|
wxFileName fn3(wxFileName::GetTempDir(), wxT("wx_test_copy"));
|
||||||
m_fileNameWork = fn3.GetFullPath();
|
m_fileNameWork = fn3.GetFullPath();
|
||||||
@@ -126,10 +130,12 @@ void FileFunctionsTestCase::tearDown()
|
|||||||
{
|
{
|
||||||
wxRemoveFile(m_fileNameASCII);
|
wxRemoveFile(m_fileNameASCII);
|
||||||
}
|
}
|
||||||
|
#if wxUSE_UNICODE
|
||||||
if ( wxFileExists(m_fileNameNonASCII) )
|
if ( wxFileExists(m_fileNameNonASCII) )
|
||||||
{
|
{
|
||||||
wxRemoveFile(m_fileNameNonASCII);
|
wxRemoveFile(m_fileNameNonASCII);
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
if ( wxFileExists(m_fileNameWork) )
|
if ( wxFileExists(m_fileNameWork) )
|
||||||
{
|
{
|
||||||
wxRemoveFile(m_fileNameWork);
|
wxRemoveFile(m_fileNameWork);
|
||||||
@@ -176,8 +182,10 @@ void FileFunctionsTestCase::CreateFile()
|
|||||||
{
|
{
|
||||||
// Create file name containing ASCII characters only.
|
// Create file name containing ASCII characters only.
|
||||||
DoCreateFile(m_fileNameASCII);
|
DoCreateFile(m_fileNameASCII);
|
||||||
|
#if wxUSE_UNICODE
|
||||||
// Create file name containing non-ASCII characters.
|
// Create file name containing non-ASCII characters.
|
||||||
DoCreateFile(m_fileNameNonASCII);
|
DoCreateFile(m_fileNameNonASCII);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::DoCreateFile(const wxString& filePath)
|
void FileFunctionsTestCase::DoCreateFile(const wxString& filePath)
|
||||||
@@ -199,8 +207,10 @@ void FileFunctionsTestCase::FileExists()
|
|||||||
|
|
||||||
// Check file name containing ASCII characters only.
|
// Check file name containing ASCII characters only.
|
||||||
DoFileExists(m_fileNameASCII);
|
DoFileExists(m_fileNameASCII);
|
||||||
|
#if wxUSE_UNICODE
|
||||||
// Check file name containing non-ASCII characters.
|
// Check file name containing non-ASCII characters.
|
||||||
DoFileExists(m_fileNameNonASCII);
|
DoFileExists(m_fileNameNonASCII);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::DoFileExists(const wxString& filePath)
|
void FileFunctionsTestCase::DoFileExists(const wxString& filePath)
|
||||||
@@ -223,8 +233,10 @@ void FileFunctionsTestCase::FindFile()
|
|||||||
{
|
{
|
||||||
// Find file name containing ASCII characters only.
|
// Find file name containing ASCII characters only.
|
||||||
DoFindFile(m_fileNameASCII);
|
DoFindFile(m_fileNameASCII);
|
||||||
|
#if wxUSE_UNICODE
|
||||||
// Find file name containing non-ASCII characters.
|
// Find file name containing non-ASCII characters.
|
||||||
DoFindFile(m_fileNameNonASCII);
|
DoFindFile(m_fileNameNonASCII);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::DoFindFile(const wxString& filePath)
|
void FileFunctionsTestCase::DoFindFile(const wxString& filePath)
|
||||||
@@ -283,8 +295,10 @@ void FileFunctionsTestCase::RemoveFile()
|
|||||||
{
|
{
|
||||||
// Create & remove file with name containing ASCII characters only.
|
// Create & remove file with name containing ASCII characters only.
|
||||||
DoRemoveFile(m_fileNameASCII);
|
DoRemoveFile(m_fileNameASCII);
|
||||||
|
#if wxUSE_UNICODE
|
||||||
// Create & remove file with name containing non-ASCII characters.
|
// Create & remove file with name containing non-ASCII characters.
|
||||||
DoRemoveFile(m_fileNameNonASCII);
|
DoRemoveFile(m_fileNameNonASCII);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::DoRemoveFile(const wxString& filePath)
|
void FileFunctionsTestCase::DoRemoveFile(const wxString& filePath)
|
||||||
@@ -305,6 +319,7 @@ void FileFunctionsTestCase::RenameFile()
|
|||||||
{
|
{
|
||||||
// Verify renaming file with/without overwriting
|
// Verify renaming file with/without overwriting
|
||||||
// when new file already exist/don't exist.
|
// when new file already exist/don't exist.
|
||||||
|
#if wxUSE_UNICODE
|
||||||
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, false, false);
|
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, false, false);
|
||||||
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, false, true);
|
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, false, true);
|
||||||
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, true, false);
|
DoRenameFile(m_fileNameASCII, m_fileNameNonASCII, true, false);
|
||||||
@@ -313,6 +328,7 @@ void FileFunctionsTestCase::RenameFile()
|
|||||||
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, false, true);
|
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, false, true);
|
||||||
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, true, false);
|
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, true, false);
|
||||||
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, true, true);
|
DoRenameFile(m_fileNameNonASCII, m_fileNameASCII, true, true);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -378,8 +394,10 @@ FileFunctionsTestCase::DoRenameFile(const wxString& oldFilePath,
|
|||||||
|
|
||||||
void FileFunctionsTestCase::ConcatenateFiles()
|
void FileFunctionsTestCase::ConcatenateFiles()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_UNICODE
|
||||||
DoConcatFile(m_fileNameASCII, m_fileNameNonASCII, m_fileNameWork);
|
DoConcatFile(m_fileNameASCII, m_fileNameNonASCII, m_fileNameWork);
|
||||||
DoConcatFile(m_fileNameNonASCII, m_fileNameASCII, m_fileNameWork);
|
DoConcatFile(m_fileNameNonASCII, m_fileNameASCII, m_fileNameWork);
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::DoConcatFile(const wxString& filePath1,
|
void FileFunctionsTestCase::DoConcatFile(const wxString& filePath1,
|
||||||
@@ -525,21 +543,25 @@ void FileFunctionsTestCase::PathOnly()
|
|||||||
// Rmdir fails on them on Linux. See ticket #17644.
|
// Rmdir fails on them on Linux. See ticket #17644.
|
||||||
void FileFunctionsTestCase::Mkdir()
|
void FileFunctionsTestCase::Mkdir()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_UNICODE
|
||||||
wxString dirname = wxString::FromUTF8("__wxMkdir_test_dir_with_\xc3\xb6");
|
wxString dirname = wxString::FromUTF8("__wxMkdir_test_dir_with_\xc3\xb6");
|
||||||
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxDirExists(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxDirExists(dirname) );
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxRmdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxRmdir(dirname) );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileFunctionsTestCase::Rmdir()
|
void FileFunctionsTestCase::Rmdir()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_UNICODE
|
||||||
wxString dirname = wxString::FromUTF8("__wxRmdir_test_dir_with_\xc3\xb6");
|
wxString dirname = wxString::FromUTF8("__wxRmdir_test_dir_with_\xc3\xb6");
|
||||||
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
||||||
|
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxRmdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxRmdir(dirname) );
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, !wxDirExists(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, !wxDirExists(dirname) );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -248,9 +248,11 @@ void DataStreamTestCase::StringRW()
|
|||||||
wxString s(wxT("Test1"));
|
wxString s(wxT("Test1"));
|
||||||
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
s.append(2, wxT('\0'));
|
s.append(2, wxT('\0'));
|
||||||
s.append(wxT("Test2"));
|
s.append(wxT("Test2"));
|
||||||
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
s = wxString::FromUTF8("\xc3\xbc"); // U+00FC LATIN SMALL LETTER U WITH DIAERESIS
|
s = wxString::FromUTF8("\xc3\xbc"); // U+00FC LATIN SMALL LETTER U WITH DIAERESIS
|
||||||
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
CPPUNIT_ASSERT_EQUAL( TestRW(s), s );
|
||||||
|
@@ -131,7 +131,7 @@ TEST_CASE("wxStringOutputStream::Tell", "[stream]")
|
|||||||
wxString str(s);
|
wxString str(s);
|
||||||
CHECK( wxStringOutputStream(&str).TellO() == len );
|
CHECK( wxStringOutputStream(&str).TellO() == len );
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
wxMBConvUTF16 convUTF16;
|
wxMBConvUTF16 convUTF16;
|
||||||
wxStringOutputStream ss16(NULL, convUTF16);
|
wxStringOutputStream ss16(NULL, convUTF16);
|
||||||
CHECK( ss16.TellO() == 0 );
|
CHECK( ss16.TellO() == 0 );
|
||||||
@@ -144,4 +144,5 @@ TEST_CASE("wxStringOutputStream::Tell", "[stream]")
|
|||||||
// The U+2070D character is represented by a surrogate pair in UTF-16.
|
// The U+2070D character is represented by a surrogate pair in UTF-16.
|
||||||
wxString u2070D = wxString::FromUTF8("\xF0\xA0\x9C\x8D");
|
wxString u2070D = wxString::FromUTF8("\xF0\xA0\x9C\x8D");
|
||||||
CHECK( wxStringOutputStream(&u2070D, convUTF16).TellO() == 4 );
|
CHECK( wxStringOutputStream(&u2070D, convUTF16).TellO() == 4 );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
}
|
}
|
||||||
|
@@ -636,9 +636,11 @@ void StdStringTestCase::StdConversion()
|
|||||||
wxStdWideString s8(s4);
|
wxStdWideString s8(s4);
|
||||||
CPPUNIT_ASSERT( s8 == "hello" );
|
CPPUNIT_ASSERT( s8 == "hello" );
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
std::string s9("\xF0\x9F\x90\xB1\0\xE7\x8C\xAB", 9); /* U+1F431 U+0000 U+732B */
|
std::string s9("\xF0\x9F\x90\xB1\0\xE7\x8C\xAB", 9); /* U+1F431 U+0000 U+732B */
|
||||||
wxString s10 = wxString::FromUTF8(s9);
|
wxString s10 = wxString::FromUTF8(s9);
|
||||||
CPPUNIT_ASSERT_EQUAL( s9, s10.ToStdString(wxConvUTF8) );
|
CPPUNIT_ASSERT_EQUAL( s9, s10.ToStdString(wxConvUTF8) );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
std::string s11("xyz\0\xFF", 5); /* an invalid UTF-8 sequence */
|
std::string s11("xyz\0\xFF", 5); /* an invalid UTF-8 sequence */
|
||||||
CPPUNIT_ASSERT_EQUAL( wxString::FromUTF8(s11), "" );
|
CPPUNIT_ASSERT_EQUAL( wxString::FromUTF8(s11), "" );
|
||||||
|
@@ -260,7 +260,9 @@ void StringTestCase::StaticConstructors()
|
|||||||
CPPUNIT_ASSERT_EQUAL( "Hello", wxString::FromUTF8("Hello", 5) );
|
CPPUNIT_ASSERT_EQUAL( "Hello", wxString::FromUTF8("Hello", 5) );
|
||||||
CPPUNIT_ASSERT_EQUAL( "Hello", wxString::FromUTF8("Hello") );
|
CPPUNIT_ASSERT_EQUAL( "Hello", wxString::FromUTF8("Hello") );
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
CPPUNIT_ASSERT_EQUAL( 2, wxString::FromUTF8("h\xc3\xa9llo", 3).length() );
|
CPPUNIT_ASSERT_EQUAL( 2, wxString::FromUTF8("h\xc3\xa9llo", 3).length() );
|
||||||
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
|
|
||||||
//CPPUNIT_ASSERT_EQUAL( 1, wxString::FromUTF8("", 1).length() );
|
//CPPUNIT_ASSERT_EQUAL( 1, wxString::FromUTF8("", 1).length() );
|
||||||
|
Reference in New Issue
Block a user