|
| struct | Aarch64FlagsBase |
| | Derived classes should use Aarch64FlagsBase with the CRTP pattern. More...
|
| |
| struct | always_false |
| | Very simple type for better semantics when we want static_assert(false) to work inside primary class templates. More...
|
| |
| class | App |
| |
| class | AsmBuffer |
| |
| class | AsmData |
| |
| class | AsmFunction |
| |
| class | AsmFunction< Ret(Args...)> |
| |
| class | AsmFunctionResult |
| | Transparent wrapper around Result<Ret>, as far as the user is concerned. More...
|
| |
| class | AsmSymbol |
| |
| class | AsmSymbolResult |
| | Transparent wrapper around Result<T>, as far as the user is concerned. More...
|
| |
| class | Assignment |
| | Declaration for the logic and data encapsulating a class assignment. More...
|
| |
| class | AssignmentFileSearcher |
| |
| struct | AssignmentResult |
| |
| class | AssignmentTestRunner |
| | Manages test execution and result aggregation for a specific assignment. More...
|
| |
| class | Byte |
| | More user-friendly interface wrapper for a byte-like integral. More...
|
| |
| class | ByteArray |
| |
| class | ByteVector |
| |
| class | CommandLineArgs |
| | Just a wrapper around argparse for now. More...
|
| |
| struct | CompilerInfo |
| |
| class | ContextInternalError |
| | Error for any internal failure conditions of TestContext. More...
|
| |
| struct | count_if |
| |
| struct | count_if_not |
| |
| class | DatabaseReader |
| | Small CSV reader implementation for student names database Expects the specified file to contain a list of newline-seperated "lastname,firstname" entries, utf-8 encoded. More...
|
| |
| struct | DebugFormatter |
| |
| struct | DecomposedExpr |
| | Stores references to rhs and lhs of a comparison expression, serving as an interface to the "decomposed" expression. More...
|
| |
| struct | Decomposer |
| | Just a tag type for operator overloading purposes Intended use is on the lhs of operator<= e.g. Decomposer{} <= a < b + 1 Decomposes the expression "a < b + 1" into the subexpressions "a" and "b + 1". More...
|
| |
| class | ElfReader |
| | Adaptor to (a few) libelf functions. More...
|
| |
| class | Expected |
| | std::variant wrapper for a partial implementation of C++23's expected type More...
|
| |
| class | FileSearcher |
| |
| struct | FlagsRegister |
| |
| struct | FloatingPointRegister |
| |
| struct | FunctionTraits |
| |
| struct | FunctionTraits< FuncRet(FuncArgs...)> |
| |
| class | GlobalRegistrar |
| | A global singleton registrar. Used with Assignments for now. More...
|
| |
| struct | IntRegister |
| | General Purpose Register. More...
|
| |
| class | MemoryIOBase |
| | Base class for interacting with a tracee's memory in a variety of ways at a (relatively) high-level Functionally a data pipeline between the tracer and tracee. More...
|
| |
| struct | MemoryIOSerde |
| | Example class implementation: More...
|
| |
| struct | MemoryIOSerde< NativeByteVector > |
| |
| struct | MemoryIOSerde< NonTermString< Length > > |
| |
| struct | MemoryIOSerde< std::string > |
| |
| struct | MemoryIOSerde< T > |
| |
| struct | MultiStudentResult |
| |
| class | MultiStudentRunner |
| |
| class | NonCopyable |
| | A trivially-movable, but non-copyable type. More...
|
| |
| class | NonMovable |
| | A non-movable and non-copyable type. More...
|
| |
| struct | NonTermString |
| |
| struct | Overloaded |
| |
| struct | pair |
| |
| class | PlainTextSerializer |
| |
| class | ProfessorApp |
| |
| class | Program |
| |
| struct | ProgramOptions |
| |
| class | PtraceMemoryIO |
| | TraceeMemory implemented using ptrace(2) commands. More...
|
| |
| struct | RegistersState |
| |
| struct | remove_all_pointers |
| | Removes all levels of pointers on a type. More...
|
| |
| struct | remove_all_pointers< T * > |
| | Removes all levels of pointers on a type. More...
|
| |
| class | Requirement |
| |
| struct | RequirementResult |
| |
| struct | RunMetadata |
| |
| class | RunResult |
| |
| class | Serializer |
| |
| class | Sink |
| |
| class | StaticString |
| | A fully compile-time capable string type Guaranteed to be null-terminated. More...
|
| |
| class | StdoutSink |
| |
| class | StudentApp |
| |
| struct | StudentInfo |
| |
| struct | StudentResult |
| |
| class | Subprocess |
| |
| struct | Symbol |
| | Basic definition for a symbol found in an ELF file. More...
|
| |
| class | SymbolTable |
| | A basic symbol table, for simple interaction with a number of symbols loaded from an ELF file. More...
|
| |
| struct | SyscallEntry |
| |
| struct | SyscallRecord |
| | Record of a syscall for use with Tracer to keep track of which syscalls a child process invokes. More...
|
| |
| class | TestAutoRegistrar |
| | Helper class that, whem constructed, automatically constructs and registers a test. More...
|
| |
| class | TestBase |
| | Base class primarily for a user-written test. More...
|
| |
| class | TestContext |
| | User-facing API for use within an assignment test case for: Interacting with or querying data for the student's assembled binary Test result collection (requirements, pass/fail cases) Performing any other esoteric test-related action. More...
|
| |
| struct | TestResult |
| |
| struct | to_array_like_fn |
| |
| struct | to_static_container_fn |
| | Range adaptor function to convert a range to a static (sized at compile time) container, like std::array, std::tuple, etc. More...
|
| |
| class | TracedSubprocess |
| | A subprocess managed by a tracer. More...
|
| |
| struct | TracedWaitid |
| |
| class | Tracer |
| | A lightweight wrapper of ptrace(2) More...
|
| |
| struct | UnexpectedT |
| |
| struct | X64FlagsBase |
| | Derived classes should use Aarch64FlagsBase with the CRTP pattern. More...
|
| |
|
| template<typename T > |
| constexpr DecomposedExpr<"", T > | operator<= (Decomposer, T &&expr_lhs) |
| |
| template<typename T , typename U > |
| constexpr DecomposedExpr<"==", T, U > | operator== (DecomposedExpr<"", T > &&expr_lhs, U &&expr_rhs) |
| |
| template<typename T , typename U > |
| constexpr DecomposedExpr<"!=", T, U > | operator!= (DecomposedExpr<"", T > &&expr_lhs, U &&expr_rhs) |
| |
| template<typename T , typename U > |
| constexpr DecomposedExpr<">=", T, U > | operator>= (DecomposedExpr<"", T > &&expr_lhs, U &&expr_rhs) |
| |
| DISABLE_OPERATOR & | DISABLE_OPERATOR (|);DISABLE_OPERATOR(^ |
| |
| DISABLE_OPERATOR && | DISABLE_OPERATOR (||);DISABLE_OPERATOR(+= |
| |
| | DISABLE_OPERATOR (-=) |
| |
| DISABLE_OPERATOR * | DISABLE_OPERATOR (/=);DISABLE_OPERATOR(%= |
| |
| | DISABLE_OPERATOR (<<=) |
| |
| | DISABLE_OPERATOR (> >=) |
| |
| DISABLE_OPERATOR & | DISABLE_OPERATOR (^=);DISABLE_OPERATOR(|= |
| |
| | DISABLE_OPERATOR (COMMA) |
| |
| | DISABLE_CHAINED_OPERATOR (==) |
| |
| | DISABLE_CHAINED_OPERATOR (!=) |
| |
| | DISABLE_CHAINED_OPERATOR (<=) |
| |
| | DISABLE_CHAINED_OPERATOR (>=) |
| |
| template<StaticString OpStr, typename T > |
| | Requirement (DecomposedExpr< OpStr, T > &&, const inspection::Tokenizer<> &, std::string) -> Requirement< exprs::Noop< T > > |
| | Deduction guide for a single type decomposition expr.
|
| |
| template<StaticString OpStr, typename T , typename U > |
| | Requirement (DecomposedExpr< OpStr, T, U > &&, const inspection::Tokenizer<> &, std::string) -> Requirement< exprs::OpStrToType< OpStr, T, U > > |
| | Deduction guide for a binary type decomposition expr.
|
| |
template<template< EndiannessKind > typename To, EndiannessKind Endianness, ranges::range Range>
requires (std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| | Reinterpret a range of trivially copyable values as a ByteVector of specified endianness, or as a ByteArray of specified or deduced size and specified endianness.
|
| |
template<std::same_as< NativeByteVector > NativeTo, ranges::range Range>
requires (std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| |
template<template< std::size_t, EndiannessKind > typename SizedTo, std::size_t Size, EndiannessKind Endianness, ranges::range Range>
requires (std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| |
template<template< std::size_t, EndiannessKind > typename SizedTo, EndiannessKind Endianness, ranges::range Range>
requires (std::is_trivially_copyable_v<ranges::range_value_t<Range>> && std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| |
template<template< std::size_t > typename NativeSizedTo, std::size_t Size, ranges::range Range>
requires (std::same_as<NativeSizedTo<Size>, NativeByteArray<Size>> && std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| |
template<template< std::size_t > typename NativeSizedTo, ranges::range Range>
requires (std::same_as<NativeSizedTo<0>, NativeByteArray<0>> && std::is_trivially_copyable_v<ranges::range_value_t<Range>>) |
| constexpr auto | to_bytes (const Range &range) |
| |
| template<template< EndiannessKind > typename To, EndiannessKind Endianness, C< std::is_trivially_copyable >... Ts> |
| constexpr auto | to_bytes (const Ts &... values) |
| | Reinterpret trivially copyable value(s) as a ByteVector or ByteArray, specifications ditto.
|
| |
| template<std::same_as< NativeByteVector > NativeTo, C< std::is_trivially_copyable >... Ts> |
| constexpr auto | to_bytes (const Ts &... values) |
| |
| template<template< std::size_t, EndiannessKind > typename SizedTo, std::size_t Size, EndiannessKind Endianness, C< std::is_trivially_copyable >... Ts> |
| constexpr auto | to_bytes (const Ts &... values) |
| |
template<template< std::size_t > typename NativeSizedTo, std::size_t Size, C< std::is_trivially_copyable >... Ts>
requires (std::same_as<NativeSizedTo<Size>, NativeByteArray<Size>>) |
| constexpr auto | to_bytes (const Ts &... values) |
| |
template<template< std::size_t N > typename NativeSizedTo, C< std::is_trivially_copyable >... Ts>
requires (std::same_as<NativeSizedTo<0>, NativeByteArray<0>>) |
| constexpr auto | to_bytes (const Ts &... values) |
| |
| template<EndiannessKind Endianness = EndiannessKind::Native> |
| constexpr decltype(auto) | as_bytes () |
| | callable providing a view adaptor to reinterpret a range of trivially copyable values as bytes.
|
| |
| template<typename T , typename... U> |
| | ByteArray (T, U...) -> ByteArray< sizeof...(U)+1, EndiannessKind::Native > |
| | Deduction guide.
|
| |
| | CCTYPE_IMPL (isdigit, bool) |
| |
| | CCTYPE_IMPL (isxdigit, bool) |
| |
| | CCTYPE_IMPL (islower, bool) |
| |
| | CCTYPE_IMPL (isupper, bool) |
| |
| | CCTYPE_IMPL (isalpha, bool) |
| |
| | CCTYPE_IMPL (isalnum, bool) |
| |
| | CCTYPE_IMPL (iscntrl, bool) |
| |
| | CCTYPE_IMPL (isgraph, bool) |
| |
| | CCTYPE_IMPL (isprint, bool) |
| |
| | CCTYPE_IMPL (isblank, bool) |
| |
| | CCTYPE_IMPL (isspace, bool) |
| |
| | CCTYPE_IMPL (ispunct, bool) |
| |
| | CCTYPE_IMPL (toupper, char) |
| |
| | CCTYPE_IMPL (tolower, char) |
| |
template<typename T >
requires std::is_arithmetic_v<T> |
| constexpr T | abs (T val) |
| |
template<typename BaseT , std::unsigned_integral ExpT>
requires std::is_arithmetic_v<BaseT> |
| constexpr std::common_type_t< BaseT, ExpT > | pow (BaseT base, ExpT exp) |
| |
template<typename T >
requires (fmt::formattable<T>) |
| std::string | format_or_unknown (T &&value, fmt::format_string< T > fmt="{}") |
| |
template<typename T >
requires (!fmt::formattable<T>) |
| std::string | format_or_unknown (T &&, fmt::format_string< std::string_view > fmt="{}") |
| |
template<typename OutputIt , typename T >
requires (fmt::formattable<T>) |
| auto | format_to_or_unknown (OutputIt &&out, T &&value, fmt::format_string< T > fmt="{}") |
| |
template<typename OutputIt , typename T >
requires (!fmt::formattable<T>) |
| auto | format_to_or_unknown (OutputIt &&out, T &&, fmt::format_string< std::string_view > fmt="{}") |
| |
| consteval bool | is_little_endian () |
| |
| template<typename T1 , typename T2 > |
| | pair (T1, T2) -> pair< T1, T2 > |
| |
| template<std::size_t N> |
| | StaticString (const char(&input)[N]) -> StaticString< N - 1 > |
| |
| template<StaticString Fmt, std::size_t MaxSz = 10 * 1'024, fmt::formattable... Args> |
| constexpr auto | static_format (Args &&... args) |
| |
| template<std::size_t N> |
| constexpr std::string_view | format_as (const StaticString< N > &str) |
| |
template<std::size_t I, std::size_t Size>
requires (I < Size) |
| constexpr char | get (const ::asmgrader::StaticString< Size > &str) |
| | Specialization of get to play nice with algorithms that work on tuple-like types.
|
| |
template<ranges::range StaticallySizedContainer>
requires (HasStaticSize<StaticallySizedContainer>) |
| constexpr auto | static_to () |
| | A pipeable adaptor to convert to any static container. Just like ranges::to, but statically sized.
|
| |
| template<std::size_t N, template< typename, std::size_t > typename ArrayLike> |
| constexpr auto | static_to () |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Specify a static size and an "array-like" class template to convert to.
|
| |
| template<std::size_t N> |
| constexpr auto | to_array () |
| | A pipeable adaptor to a std::array.
|
| |
| template<ranges::range Container> |
| constexpr auto | maybe_static_to () |
| | A pipeable adaptor to convert to any container, statically or dynamically sized. Internally uses static_to for supported containers, and ranges::to for all others.
|
| |
| void | unreachable () |
| |
| std::string | get_err_msg (int err) |
| | Obtain Linux error code message given by err via libc functions.
|
| |
| std::string | get_err_msg () |
| | Obtain Linux error (i.e., errno) message via libc functions.
|
| |
| void | init_loggers () |
| |
| template<typename Range > |
| consteval std::size_t | get_static_size () |
| |
| template<typename Range > |
| constexpr std::size_t | get_static_size_or (std::size_t default_value) |
| |
| template<typename Func , typename Tuple > |
| constexpr auto | tuple_find_first (Func &&pred, const Tuple &val) |
| |
| constexpr bool | operator== (const std::timespec &lhs, const std::timespec &rhs) |
| |
| template<std::floating_point Arg> |
| auto | setup_function_param (const Arg &arg) |
| |
| template<typename T > |
| void | trace_exception (const T &exception) |
| |
template<typename Func , typename... Args>
requires (std::invocable<Func, Args...>) |
| std::optional< std::invoke_result_t< Func, Args... > > | wrap_throwable_fn (Func &&fn, Args &&... args) |
| |
| bool | is_color_terminal () noexcept |
| |
| bool | in_terminal (FILE *file) noexcept |
| |
| Expected< winsize > | terminal_size (FILE *file) noexcept |
| |
| | __attribute__ ((format(strftime, 2, 0))) inline Expected< std |
| |
| constexpr bool | should_output_requirement (VerbosityLevel level, bool passed) |
| | See VerbosityLevel.
|
| |
| constexpr bool | should_output_test (VerbosityLevel level) |
| | See VerbosityLevel.
|
| |
| constexpr bool | should_output_student_summary (VerbosityLevel level) |
| | See VerbosityLevel.
|
| |
| constexpr bool | should_output_grade_percentage (VerbosityLevel level) |
| | See VerbosityLevel.
|
| |
| constexpr bool | should_output_requirement_details (VerbosityLevel level) |
| | See VerbosityLevel.
|
| |
| constexpr bool | should_output_run_metadata (VerbosityLevel level) |
| | See VerbosityLevel.
|
| |
| ProgramOptions | parse_args_or_exit (std::span< const char * > args, int exit_code) noexcept |
| |
| consteval unsigned int | get_version () |
| |