From 39101a4383d38c1217c44b999a6e3bd199727c60 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 6 Jan 2017 17:28:08 +0200 Subject: Rework and rename target_triplet --- tests/buildfile | 2 +- tests/target-triplet/buildfile | 7 ++ tests/target-triplet/driver.cxx | 161 ++++++++++++++++++++++++++++++++++++++++ tests/triplet/buildfile | 7 -- tests/triplet/driver.cxx | 161 ---------------------------------------- 5 files changed, 169 insertions(+), 169 deletions(-) create mode 100644 tests/target-triplet/buildfile create mode 100644 tests/target-triplet/driver.cxx delete mode 100644 tests/triplet/buildfile delete mode 100644 tests/triplet/driver.cxx (limited to 'tests') diff --git a/tests/buildfile b/tests/buildfile index 7259717..8608ed9 100644 --- a/tests/buildfile +++ b/tests/buildfile @@ -4,7 +4,7 @@ d = base64/ cpfile/ dir-iterator/ fdstream/ link/ manifest-parser/ \ manifest-serializer/ manifest-roundtrip/ pager/ path/ prefix-map/ \ - process/ sha256/ small-vector/ strcase/ timestamp/ triplet/ + process/ sha256/ small-vector/ strcase/ timestamp/ target-triplet/ ./: $d include $d diff --git a/tests/target-triplet/buildfile b/tests/target-triplet/buildfile new file mode 100644 index 0000000..ca8365d --- /dev/null +++ b/tests/target-triplet/buildfile @@ -0,0 +1,7 @@ +# file : tests/target-triplet/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver} ../../butl/lib{butl} + +include ../../butl/ diff --git a/tests/target-triplet/driver.cxx b/tests/target-triplet/driver.cxx new file mode 100644 index 0000000..fe055db --- /dev/null +++ b/tests/target-triplet/driver.cxx @@ -0,0 +1,161 @@ +// file : tests/target-triplet/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include +#include +#include // invalid_argument + +#include + +using namespace std; +using namespace butl; + +static bool +fail (const char*); + +static bool +test (const char*, + const char* canon, + const char* cpu, + const char* vendor, + const char* system, + const char* version, + const char* class_ = "other"); + +int +main () +{ + assert (fail ("")); + assert (fail ("mingw32")); + assert (fail ("-")); + assert (fail ("arm-")); + assert (fail ("-mingw32")); + assert (fail ("a-b-c-d-e")); + assert (fail ("arm-pc--")); + assert (fail ("arm-pc-linux-")); + assert (fail ("arm-pc--gnu")); + + assert (test ("i686-elf", + "i686-elf", + "i686", "", "elf", "")); + + assert (test ("arm-eabi", + "arm-eabi", + "arm", "", "eabi", "")); + + assert (test ("arm-none-eabi", + "arm-eabi", + "arm", "", "eabi", "")); + + assert (test ("arm-none-linux-gnueabi", + "arm-linux-gnueabi", + "arm", "", "linux-gnueabi", "", "linux")); + + assert (test ("arm-softfloat-linux-gnu", + "arm-softfloat-linux-gnu", + "arm", "softfloat", "linux-gnu", "", "linux")); + + assert (test ("i686-pc-mingw32", + "i686-mingw32", + "i686", "", "mingw32", "", "windows")); + + assert (test ("i686-w64-mingw32", + "i686-w64-mingw32", + "i686", "w64", "mingw32", "", "windows")); + + assert (test ("i686-lfs-linux-gnu", + "i686-lfs-linux-gnu", + "i686", "lfs", "linux-gnu", "", "linux")); + + assert (test ("x86_64-unknown-linux-gnu", + "x86_64-linux-gnu", + "x86_64", "", "linux-gnu", "", "linux")); + + assert (test ("x86_64-linux-gnux32", + "x86_64-linux-gnux32", + "x86_64", "", "linux-gnux32", "", "linux")); + + // Removal of none-. + // + assert (test ("arm-none", + "arm-none", + "arm", "", "none", "")); + + assert (test ("arm-unknown-none-eabi", + "arm-eabi", + "arm", "", "eabi", "")); + + // Version extraction. + // + assert (test ("x86_64-apple-darwin14.5.0", + "x86_64-apple-darwin14.5.0", + "x86_64", "apple", "darwin", "14.5.0", "macosx")); + + assert (test ("x86_64-unknown-freebsd10.2", + "x86_64-freebsd10.2", + "x86_64", "", "freebsd", "10.2", "bsd")); + + assert (test ("x86_64-pc-openbsd5.6", + "x86_64-openbsd5.6", + "x86_64", "", "openbsd", "5.6", "bsd")); + + assert (test ("sparc-sun-solaris2.9", + "sparc-sun-solaris2.9", + "sparc", "sun", "solaris", "2.9")); + + assert (test ("x86_64-microsoft-win32-msvc14.0", + "x86_64-microsoft-win32-msvc14.0", + "x86_64", "microsoft", "win32-msvc", "14.0", "windows")); +} + +static bool +test (const char* s, + const char* canon, + const char* cpu, + const char* vendor, + const char* system, + const char* version, + const char* class_) +{ + target_triplet t (s); + string c (t.string ()); + + auto cmp = [] (const string& a, const char* e, const char* n) -> bool + { + if (a != e) + { + cerr << n << " actual: " << a << endl + << n << " expect: " << e << endl; + + return false; + } + + return true; + }; + + return + cmp (c, canon, "canonical") && + cmp (t.cpu, cpu, "cpu") && + cmp (t.vendor, vendor, "vendor") && + cmp (t.system, system, "system") && + cmp (t.version, version, "version") && + cmp (t.class_, class_, "class"); +} + +static bool +fail (const char* s) +{ + try + { + target_triplet t (s); + cerr << "nofail: " << s << endl; + return false; + } + catch (invalid_argument& e) + { + //cerr << e.what () << endl; + } + + return true; +} diff --git a/tests/triplet/buildfile b/tests/triplet/buildfile deleted file mode 100644 index 7724f4c..0000000 --- a/tests/triplet/buildfile +++ /dev/null @@ -1,7 +0,0 @@ -# file : tests/triplet/buildfile -# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd -# license : MIT; see accompanying LICENSE file - -exe{driver}: cxx{driver} ../../butl/lib{butl} - -include ../../butl/ diff --git a/tests/triplet/driver.cxx b/tests/triplet/driver.cxx deleted file mode 100644 index 96d76cd..0000000 --- a/tests/triplet/driver.cxx +++ /dev/null @@ -1,161 +0,0 @@ -// file : tests/triplet/driver.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include -#include -#include // invalid_argument - -#include - -using namespace std; -using namespace butl; - -static bool -fail (const char*); - -static bool -test (const char*, - const char* canon, - const char* cpu, - const char* vendor, - const char* system, - const char* version, - const char* class_ = "other"); - -int -main () -{ - assert (fail ("")); - assert (fail ("mingw32")); - assert (fail ("-")); - assert (fail ("arm-")); - assert (fail ("-mingw32")); - assert (fail ("a-b-c-d-e")); - assert (fail ("arm-pc--")); - assert (fail ("arm-pc-linux-")); - assert (fail ("arm-pc--gnu")); - - assert (test ("i686-elf", - "i686-elf", - "i686", "", "elf", "")); - - assert (test ("arm-eabi", - "arm-eabi", - "arm", "", "eabi", "")); - - assert (test ("arm-none-eabi", - "arm-eabi", - "arm", "", "eabi", "")); - - assert (test ("arm-none-linux-gnueabi", - "arm-linux-gnueabi", - "arm", "", "linux-gnueabi", "", "linux")); - - assert (test ("arm-softfloat-linux-gnu", - "arm-softfloat-linux-gnu", - "arm", "softfloat", "linux-gnu", "", "linux")); - - assert (test ("i686-pc-mingw32", - "i686-mingw32", - "i686", "", "mingw32", "", "windows")); - - assert (test ("i686-w64-mingw32", - "i686-w64-mingw32", - "i686", "w64", "mingw32", "", "windows")); - - assert (test ("i686-lfs-linux-gnu", - "i686-lfs-linux-gnu", - "i686", "lfs", "linux-gnu", "", "linux")); - - assert (test ("x86_64-unknown-linux-gnu", - "x86_64-linux-gnu", - "x86_64", "", "linux-gnu", "", "linux")); - - assert (test ("x86_64-linux-gnux32", - "x86_64-linux-gnux32", - "x86_64", "", "linux-gnux32", "", "linux")); - - // Removal of none-. - // - assert (test ("arm-none", - "arm-none", - "arm", "", "none", "")); - - assert (test ("arm-unknown-none-eabi", - "arm-eabi", - "arm", "", "eabi", "")); - - // Version extraction. - // - assert (test ("x86_64-apple-darwin14.5.0", - "x86_64-apple-darwin14.5.0", - "x86_64", "apple", "darwin", "14.5.0", "macosx")); - - assert (test ("x86_64-unknown-freebsd10.2", - "x86_64-freebsd10.2", - "x86_64", "", "freebsd", "10.2", "bsd")); - - assert (test ("x86_64-pc-openbsd5.6", - "x86_64-openbsd5.6", - "x86_64", "", "openbsd", "5.6", "bsd")); - - assert (test ("sparc-sun-solaris2.9", - "sparc-sun-solaris2.9", - "sparc", "sun", "solaris", "2.9")); - - assert (test ("x86_64-microsoft-win32-msvc14.0", - "x86_64-microsoft-win32-msvc14.0", - "x86_64", "microsoft", "win32-msvc", "14.0", "windows")); -} - -static bool -test (const char* s, - const char* canon, - const char* cpu, - const char* vendor, - const char* system, - const char* version, - const char* class_) -{ - string c; - triplet t (s, c); - - auto cmp = [] (const string& a, const char* e, const char* n) -> bool - { - if (a != e) - { - cerr << n << " actual: " << a << endl - << n << " expect: " << e << endl; - - return false; - } - - return true; - }; - - return - cmp (c, canon, "canonical") && - cmp (t.cpu, cpu, "cpu") && - cmp (t.vendor, vendor, "vendor") && - cmp (t.system, system, "system") && - cmp (t.version, version, "version") && - cmp (t.class_, class_, "class"); -} - -static bool -fail (const char* s) -{ - try - { - triplet t (s); - cerr << "nofail: " << s << endl; - return false; - } - catch (invalid_argument& e) - { - //cerr << e.what () << endl; - } - - return true; -} -- cgit v1.1