From d99fe2ba0799337047be8dc83539d739083f9457 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 07:44:19 +0100 Subject: [PATCH 1/9] [CI] Properly upload benchmark plot images --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90d28da..49af183 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -110,8 +110,7 @@ jobs: with: name: benchmark_results path: | - results_full.png - results_ascii.png + *.png contour_results alacritty_results xterm_results From 66ccb9bd88410c17d9e2437912cdcc3bf807b82d Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 07:49:36 +0100 Subject: [PATCH 2/9] [CI] Upload .txt files for results rather than having no file extension (for easier viewing the file from the web browser) --- .github/workflows/build.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 49af183..6bb2e68 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,13 +105,12 @@ jobs: uses: julia-actions/setup-julia@v1 - name: "Create Plots" run: julia ./scripts/plot_results.jl + - name: "Give result files a .txt file extension" + run: for file in *_results; do mv -v $file $file.txt; done - name: "Upload results and plot" uses: actions/upload-artifact@v3 with: name: benchmark_results path: | *.png - contour_results - alacritty_results - xterm_results - kitty_results + *_results.txt From a481e1a72a3ca1d9aa075277013a3e6642637f53 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 07:49:57 +0100 Subject: [PATCH 3/9] [CI] Make use of CMake presets --- .github/workflows/build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6bb2e68..0449093 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,6 +21,7 @@ concurrency: env: CTEST_OUTPUT_ON_FAILURE: 1 + CONTOUR_VERSION: "0.4.3.6442" jobs: @@ -46,6 +47,8 @@ jobs: ubuntu_linux: name: "Ubuntu Linux 22.04" runs-on: ubuntu-22.04 + env: + CMAKE_PRESET: "linux-gcc-release" steps: - uses: actions/checkout@v2 - name: ccache @@ -66,15 +69,15 @@ jobs: - name: "Install GCC 13" run: sudo apt install g++-13 - name: "cmake" - run: cmake -S . -B build -DCMAKE_BUILD_TYPE="RelWithDebInfo" -D CMAKE_CXX_COMPILER="g++-13" + run: cmake --preset "$CMAKE_PRESET" -D CMAKE_CXX_COMPILER="g++-13" - name: "build" - run: cmake --build build/ -- -j3 + run: cmake --build --preset "$CMAKE_PRESET" --preset -- -j3 - name: "install dependencies" run: ./scripts/xvfb-deps.sh - name: "Install contour" run: | - wget https://github.com/contour-terminal/contour/releases/download/v0.4.3.6442/contour-0.4.3.6442-ubuntu22.04-amd64.deb - sudo dpkg -i contour-0.4.3.6442-ubuntu22.04-amd64.deb + wget https://github.com/contour-terminal/contour/releases/download/v$CONTOUR_VERSION/contour-$CONTOUR_VERSION-ubuntu22.04-amd64.deb + sudo dpkg -i contour-$CONTOUR_VERSION-ubuntu22.04-amd64.deb - name: "create and patch contour.yml config file" run: | set -ex @@ -90,7 +93,7 @@ jobs: - name: "Install kitty and xterm" run: sudo apt install -y kitty xterm xvfb - name: "run benchmarks" - run: ./scripts/Xvfb-bench-run.sh ./build/tb/tb + run: ./scripts/Xvfb-bench-run.sh "./build/$CMAKE_PRESET/tb/tb" - name: "ls" run: ls -la - name: "cat contour_results" From ef8e30883a912be36748ce4fe1a73aa8208b709a Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 07:51:27 +0100 Subject: [PATCH 4/9] [CI] Bump checkout action from v2 to v3 --- .github/workflows/build.yml | 2 +- .github/workflows/disabled/codeql-analysis.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0449093..b4eef24 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: env: CMAKE_PRESET: "linux-gcc-release" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: ccache uses: hendrikmuhs/ccache-action@v1 with: diff --git a/.github/workflows/disabled/codeql-analysis.yml b/.github/workflows/disabled/codeql-analysis.yml index 8acc605..bb93421 100644 --- a/.github/workflows/disabled/codeql-analysis.yml +++ b/.github/workflows/disabled/codeql-analysis.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. From d6cbb101f47c0e7c77a1268a28567f67dc6b8092 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 07:54:03 +0100 Subject: [PATCH 5/9] [CI] Adds missing dependency ninja-build --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b4eef24..eaf1185 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -65,6 +65,7 @@ jobs: run: | set -ex sudo apt -q update + sudo apt install -qy ninja-build sudo ./scripts/install-deps.sh - name: "Install GCC 13" run: sudo apt install g++-13 From da3b3a175ee5873208ac5dc3c86d264047425645 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 08:17:34 +0100 Subject: [PATCH 6/9] tb: Typo-Fix changing terminal grid size --- tb/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tb/main.cpp b/tb/main.cpp index ad3a7fb..4687563 100644 --- a/tb/main.cpp +++ b/tb/main.cpp @@ -198,7 +198,7 @@ int main(int argc, char const* argv[]) if (requestedTerminalSize != initialTerminalSize) { - cout << std::format("\033[8;{};{};t", requestedTerminalSize.lines, requestedTerminalSize.columns); + cout << std::format("\033[8;{};{}t", requestedTerminalSize.lines, requestedTerminalSize.columns); cout.flush(); } From 214a44feff6c678086ca34c380272b72f19c6ef8 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 08:24:21 +0100 Subject: [PATCH 7/9] [CI] Improve some Job's step name to avoid confusion --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eaf1185..0b09d66 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,7 +73,7 @@ jobs: run: cmake --preset "$CMAKE_PRESET" -D CMAKE_CXX_COMPILER="g++-13" - name: "build" run: cmake --build --preset "$CMAKE_PRESET" --preset -- -j3 - - name: "install dependencies" + - name: "install dependencies for running benchmarks" run: ./scripts/xvfb-deps.sh - name: "Install contour" run: | From cc14611810a3f1ac8f61f177213aa8b19f4a6875 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 08:58:20 +0100 Subject: [PATCH 8/9] Move TerminalSize into termbench API and generally clean up tb --- libtermbench/termbench.cpp | 42 +++++------- libtermbench/termbench.h | 20 ++++-- tb/main.cpp | 133 ++++++++++++++++++++++++------------- 3 files changed, 116 insertions(+), 79 deletions(-) diff --git a/libtermbench/termbench.cpp b/libtermbench/termbench.cpp index 9fdb3a9..86e6ee4 100644 --- a/libtermbench/termbench.cpp +++ b/libtermbench/termbench.cpp @@ -44,14 +44,12 @@ using u16 = unsigned short; Benchmark::Benchmark(std::function _writer, size_t _testSizeMB, - unsigned short _width, - unsigned short _height, + TerminalSize terminalSize, std::function _beforeTest): writer_ { std::move(_writer) }, beforeTest_ { std::move(_beforeTest) }, testSizeMB_ { _testSizeMB }, - width_ { _width }, - height_ { _height } + terminalSize_ { terminalSize } { } @@ -81,7 +79,7 @@ void Benchmark::runAll() if (beforeTest_) beforeTest_(*test); - test->setup(width_, height_); + test->setup(terminalSize_); test->run(*buffer); auto const beginTime = steady_clock::now(); @@ -104,7 +102,7 @@ void Benchmark::summarize(std::ostream& os) { os << std::format("All {} tests finished.\n", results_.size()); os << std::format("---------------------\n\n"); - auto const gridCellCount = width_ * height_; + auto const gridCellCount = terminalSize_.columns * terminalSize_.lines; std::chrono::milliseconds totalTime {}; size_t totalBytes = 0; @@ -130,7 +128,7 @@ void Benchmark::summarize(std::ostream& os) sizeStr(bps), sizeStr(bps / static_cast(gridCellCount))); os << "\n"; - os << std::format(" screen size: {}x{}\n", width_, height_); + os << std::format(" screen size: {}x{}\n", terminalSize_.columns, terminalSize_.lines); os << std::format(" data size: {}\n", sizeStr(static_cast(testSizeMB_ * 1024 * 1024))); } @@ -204,7 +202,7 @@ namespace public: ManyLines() noexcept: Test("many_lines", "") {} - void setup(unsigned short, unsigned short) override + void setup(TerminalSize) override { text.resize(4 * 1024 * 1024); for (auto i = text.data(), e = i + text.size(); i != e; ++i) @@ -246,23 +244,21 @@ namespace public: SgrFgColoredText() noexcept: Test("sgr_fg_lines", "") {} - unsigned short width = 80; - unsigned short height = 24; + TerminalSize terminalSize; - void setup(unsigned short _width, unsigned short _height) noexcept override + void setup(TerminalSize size) noexcept override { - width = _width; - height = _height; + terminalSize = size; } void run(Buffer& _sink) noexcept override { for (unsigned frameID = 0; _sink.good(); ++frameID) { - for (u16 y = 0; y < height; ++y) + for (u16 y = 0; y < terminalSize.lines; ++y) { moveCursor(_sink, 1, y + 1u); - for (u16 x = 0; x < width; ++x) + for (u16 x = 0; x < terminalSize.columns; ++x) { auto const r = frameID; auto const g = frameID + y; @@ -281,23 +277,21 @@ namespace public: SgrFgBgColoredText() noexcept: Test("sgr_fg_bg_lines", "") {} - unsigned short width = 80; - unsigned short height = 24; + TerminalSize terminalSize; - void setup(unsigned short _width, unsigned short _height) noexcept override + void setup(TerminalSize size) noexcept override { - width = _width; - height = _height; + terminalSize = size; } void run(Buffer& _sink) noexcept override { for (unsigned frameID = 0; _sink.good(); ++frameID) { - for (u16 y = 0; y < height; ++y) + for (u16 y = 0; y < terminalSize.lines; ++y) { moveCursor(_sink, 1, y + 1u); - for (u16 x = 0; x < width; ++x) + for (u16 x = 0; x < terminalSize.columns; ++x) { auto r = static_cast(frameID); auto g = static_cast(frameID + y); @@ -321,7 +315,7 @@ namespace public: Binary() noexcept: Test("binary", "") {} - void setup(unsigned short, unsigned short) override + void setup(TerminalSize) override { text.resize(4 * 1024 * 1024); for (auto i = text.data(), e = i + text.size(); i != e; ++i) @@ -352,7 +346,7 @@ namespace { public: Line(std::string name, std::string text): Test(name, ""), text { text } {} - void setup(unsigned short, unsigned short) override {} + void setup(TerminalSize) override {} void run(Buffer& _sink) noexcept override { diff --git a/libtermbench/termbench.h b/libtermbench/termbench.h index 76a5fff..3af4edf 100644 --- a/libtermbench/termbench.h +++ b/libtermbench/termbench.h @@ -25,6 +25,14 @@ namespace contour::termbench { +struct TerminalSize +{ + unsigned short columns = 0; + unsigned short lines = 0; + + constexpr auto operator<=>(TerminalSize const&) const noexcept = default; +}; + struct Buffer { public: @@ -68,9 +76,9 @@ struct Test { } - virtual void setup(unsigned short, unsigned short) {} - virtual void run(Buffer&) noexcept = 0; - virtual void teardown(Buffer&) {} + virtual void setup(TerminalSize /*terminalSize*/) {} + virtual void run(Buffer& /*stdoutBuffer*/) noexcept = 0; + virtual void teardown(Buffer& /*stdoutBuffer*/) {} }; struct Result @@ -85,8 +93,7 @@ class Benchmark public: Benchmark(std::function _writer, size_t _testSizeMB, - unsigned short _width, - unsigned short _height, + TerminalSize terminalSize, std::function _beforeTest = {}); void add(std::unique_ptr _test); @@ -105,8 +112,7 @@ class Benchmark std::function writer_; std::function beforeTest_; size_t testSizeMB_; - unsigned short width_; - unsigned short height_; + TerminalSize terminalSize_; std::vector> tests_; std::vector results_; diff --git a/tb/main.cpp b/tb/main.cpp index 4687563..3984c80 100644 --- a/tb/main.cpp +++ b/tb/main.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -38,16 +39,10 @@ using namespace std::placeholders; #define STDOUT_FASTPATH_FD 3 -namespace -{ +using contour::termbench::TerminalSize; -struct TerminalSize +namespace { - unsigned short columns = 0; - unsigned short lines = 0; - - constexpr auto operator<=>(TerminalSize const&) const noexcept = default; -}; TerminalSize getTerminalSize() noexcept { @@ -100,43 +95,38 @@ void chunkedWriteToStdout(char const* _data, size_t _size) WriteConsoleA(stdoutHandle, _data, static_cast(_size), &nwritten, nullptr); #endif } -} // namespace -int main(int argc, char const* argv[]) +struct BenchSettings { -#if defined(_WIN32) - { - HANDLE stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE); - SetConsoleMode(stdoutHandle, ENABLE_VIRTUAL_TERMINAL_PROCESSING); - } -#endif - // TODO: Also run against NullSink to get a base value. - - auto const initialTerminalSize = getTerminalSize(); - auto requestedTerminalSize = initialTerminalSize; + TerminalSize requestedTerminalSize {}; size_t testSizeMB = 32; bool nullSink = false; bool stdoutFastPath = false; bool columnByColumn = false; std::string fileout {}; + std::optional earlyExitCode = std::nullopt; +}; +BenchSettings parseArguments(int argc, char const* argv[], TerminalSize const& initialTerminalSize) +{ + auto settings = BenchSettings { .requestedTerminalSize = initialTerminalSize }; for (int i = 1; i < argc; ++i) { if (argv[i] == "--null-sink"sv) { cout << std::format("Using null-sink.\n"); - nullSink = true; + settings.nullSink = true; } else if (argv[i] == "--fixed-size"sv) { - requestedTerminalSize.columns = 200; - requestedTerminalSize.lines = 30; + settings.requestedTerminalSize.columns = 200; + settings.requestedTerminalSize.lines = 30; } else if (argv[i] == "--stdout-fastpath"sv) { #if !defined(_WIN32) struct stat st; - stdoutFastPath = fstat(STDOUT_FASTPATH_FD, &st) == 0; + settings.stdoutFastPath = fstat(STDOUT_FASTPATH_FD, &st) == 0; #else std::cout << std::format("Ignoring {}\n", argv[i]); #endif @@ -144,50 +134,45 @@ int main(int argc, char const* argv[]) else if (argv[i] == "--column-by-column"sv) { cout << std::format("Enabling column-by-column tests.\n"); - columnByColumn = true; + settings.columnByColumn = true; } else if (argv[i] == "--size"sv && i + 1 < argc) { ++i; - testSizeMB = static_cast(std::stoul(argv[i])); + settings.testSizeMB = static_cast(std::stoul(argv[i])); } else if (argv[i] == "--help"sv || argv[i] == "-h"sv) { cout << std::format("{} [--null-sink] [--fixed-size] [--stdout-fastpath] [--column-by-column] " "[--size MB] [--output FILE] [--help]\n", argv[0]); - return EXIT_SUCCESS; + return { .earlyExitCode = EXIT_SUCCESS }; } else if (argv[i] == "--output"sv && i + 1 < argc) { ++i; - fileout = argv[i]; + settings.fileout = argv[i]; } else { cerr << std::format("Invalid argument usage.\n"); - return EXIT_FAILURE; + return { .earlyExitCode = EXIT_FAILURE }; } } + return settings; +} - auto const writer = nullSink ? nullWrite - : stdoutFastPath ? chunkedWriteToStdout - : chunkedWriteToStdout; - - contour::termbench::Benchmark tb { writer, - testSizeMB, // MB per test - requestedTerminalSize.columns, - requestedTerminalSize.lines }; - - // mlfgb +void addTestsToBenchmark(contour::termbench::Benchmark& tb, BenchSettings const& settings) +{ tb.add(contour::termbench::tests::many_lines()); tb.add(contour::termbench::tests::long_lines()); tb.add(contour::termbench::tests::sgr_fg_lines()); tb.add(contour::termbench::tests::sgr_fgbg_lines()); tb.add(contour::termbench::tests::binary()); - if (columnByColumn) + + if (settings.columnByColumn) { - auto const maxColumns { requestedTerminalSize.columns * 2u }; + auto const maxColumns { settings.requestedTerminalSize.columns * 2u }; for (size_t i = 0; i < maxColumns; ++i) tb.add(contour::termbench::tests::ascii_line(i)); for (size_t i = 0; i < maxColumns; ++i) @@ -195,24 +180,76 @@ int main(int argc, char const* argv[]) for (size_t i = 0; i < maxColumns; ++i) tb.add(contour::termbench::tests::sgrbg_line(i)); } +} + +void changeTerminalSize(TerminalSize requestedTerminalSize) +{ + cout << std::format("\033[8;{};{}t", requestedTerminalSize.lines, requestedTerminalSize.columns); + cout.flush(); +} + +struct WithScopedTerminalSize +{ + TerminalSize initialTerminalSize; + TerminalSize requestedTerminalSize; + std::function inner; + + void operator()() + { + if (requestedTerminalSize != initialTerminalSize) + changeTerminalSize(requestedTerminalSize); + + inner(); + } + + ~WithScopedTerminalSize() + { + if (requestedTerminalSize != initialTerminalSize) + changeTerminalSize(initialTerminalSize); + } +}; + +} // namespace - if (requestedTerminalSize != initialTerminalSize) +int main(int argc, char const* argv[]) +{ +#if defined(_WIN32) { - cout << std::format("\033[8;{};{}t", requestedTerminalSize.lines, requestedTerminalSize.columns); - cout.flush(); + HANDLE stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleMode(stdoutHandle, ENABLE_VIRTUAL_TERMINAL_PROCESSING); } +#endif + auto const initialTerminalSize = getTerminalSize(); + auto const settings = parseArguments(argc, argv, initialTerminalSize); + + if (settings.earlyExitCode) + return settings.earlyExitCode.value(); + + auto const writer = settings.nullSink ? nullWrite + : settings.stdoutFastPath ? chunkedWriteToStdout + : chunkedWriteToStdout; + + contour::termbench::Benchmark tb { writer, + settings.testSizeMB, // MB per test + settings.requestedTerminalSize }; + + addTestsToBenchmark(tb, settings); - tb.runAll(); + WithScopedTerminalSize { + initialTerminalSize, + settings.requestedTerminalSize, + [&]() { tb.runAll(); }, + }(); cout << "\033[m\033[H\033[J"; cout.flush(); - if (fileout.empty()) + if (settings.fileout.empty()) tb.summarize(cout); else { - cout << "Writing summary into " << fileout << std::endl; + cout << "Writing summary into " << settings.fileout << std::endl; std::ofstream writerToFile; - writerToFile.open(fileout); + writerToFile.open(settings.fileout); tb.summarize(writerToFile); } From 6dca719fc59fb9ac96befac130ba4b8d1cefd4ab Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 18 Mar 2024 09:00:21 +0100 Subject: [PATCH 9/9] Change namespace from contour::termbench to termbench --- libtermbench/termbench.cpp | 18 ++++++------------ libtermbench/termbench.h | 8 ++++---- tb/main.cpp | 26 +++++++++++++------------- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/libtermbench/termbench.cpp b/libtermbench/termbench.cpp index 86e6ee4..0896197 100644 --- a/libtermbench/termbench.cpp +++ b/libtermbench/termbench.cpp @@ -23,7 +23,7 @@ using namespace std::chrono; using namespace std::string_view_literals; -namespace contour::termbench +namespace termbench { namespace @@ -132,9 +132,9 @@ void Benchmark::summarize(std::ostream& os) os << std::format(" data size: {}\n", sizeStr(static_cast(testSizeMB_ * 1024 * 1024))); } -} // namespace contour::termbench +} // namespace termbench -namespace contour::termbench::tests +namespace termbench::tests { namespace @@ -246,10 +246,7 @@ namespace TerminalSize terminalSize; - void setup(TerminalSize size) noexcept override - { - terminalSize = size; - } + void setup(TerminalSize size) noexcept override { terminalSize = size; } void run(Buffer& _sink) noexcept override { @@ -279,10 +276,7 @@ namespace TerminalSize terminalSize; - void setup(TerminalSize size) noexcept override - { - terminalSize = size; - } + void setup(TerminalSize size) noexcept override { terminalSize = size; } void run(Buffer& _sink) noexcept override { @@ -416,4 +410,4 @@ std::unique_ptr sgrbg_line(size_t N) return std::make_unique(name, text); } -} // namespace contour::termbench::tests +} // namespace termbench::tests diff --git a/libtermbench/termbench.h b/libtermbench/termbench.h index 3af4edf..48eff49 100644 --- a/libtermbench/termbench.h +++ b/libtermbench/termbench.h @@ -22,7 +22,7 @@ #include #include -namespace contour::termbench +namespace termbench { struct TerminalSize @@ -118,10 +118,10 @@ class Benchmark std::vector results_; }; -} // namespace contour::termbench +} // namespace termbench // Holds a set of pre-defined terminal benchmark tests. -namespace contour::termbench::tests +namespace termbench::tests { std::unique_ptr many_lines(); std::unique_ptr long_lines(); @@ -131,4 +131,4 @@ std::unique_ptr binary(); std::unique_ptr ascii_line(size_t); std::unique_ptr sgr_line(size_t); std::unique_ptr sgrbg_line(size_t); -} // namespace contour::termbench::tests +} // namespace termbench::tests diff --git a/tb/main.cpp b/tb/main.cpp index 3984c80..e472998 100644 --- a/tb/main.cpp +++ b/tb/main.cpp @@ -39,7 +39,7 @@ using namespace std::placeholders; #define STDOUT_FASTPATH_FD 3 -using contour::termbench::TerminalSize; +using termbench::TerminalSize; namespace { @@ -162,23 +162,23 @@ BenchSettings parseArguments(int argc, char const* argv[], TerminalSize const& i return settings; } -void addTestsToBenchmark(contour::termbench::Benchmark& tb, BenchSettings const& settings) +void addTestsToBenchmark(termbench::Benchmark& tb, BenchSettings const& settings) { - tb.add(contour::termbench::tests::many_lines()); - tb.add(contour::termbench::tests::long_lines()); - tb.add(contour::termbench::tests::sgr_fg_lines()); - tb.add(contour::termbench::tests::sgr_fgbg_lines()); - tb.add(contour::termbench::tests::binary()); + tb.add(termbench::tests::many_lines()); + tb.add(termbench::tests::long_lines()); + tb.add(termbench::tests::sgr_fg_lines()); + tb.add(termbench::tests::sgr_fgbg_lines()); + tb.add(termbench::tests::binary()); if (settings.columnByColumn) { auto const maxColumns { settings.requestedTerminalSize.columns * 2u }; for (size_t i = 0; i < maxColumns; ++i) - tb.add(contour::termbench::tests::ascii_line(i)); + tb.add(termbench::tests::ascii_line(i)); for (size_t i = 0; i < maxColumns; ++i) - tb.add(contour::termbench::tests::sgr_line(i)); + tb.add(termbench::tests::sgr_line(i)); for (size_t i = 0; i < maxColumns; ++i) - tb.add(contour::termbench::tests::sgrbg_line(i)); + tb.add(termbench::tests::sgrbg_line(i)); } } @@ -229,9 +229,9 @@ int main(int argc, char const* argv[]) : settings.stdoutFastPath ? chunkedWriteToStdout : chunkedWriteToStdout; - contour::termbench::Benchmark tb { writer, - settings.testSizeMB, // MB per test - settings.requestedTerminalSize }; + termbench::Benchmark tb { writer, + settings.testSizeMB, // MB per test + settings.requestedTerminalSize }; addTestsToBenchmark(tb, settings);