Commit Graph

23 Commits

Author SHA1 Message Date
Jon Haslam
7e71dc6192
bump python version to 3.9 (#492) 2024-04-16 12:06:47 +01:00
Jake Hillion
71e734b120 tbv2: calculate total memory footprint
Add the option to calculate total size (inclusive size) by wrapping the
existing iterator. This change provides a new iterator, `SizedIterator`, which
wraps an existing iterator and adds a new field `size` to the output element.

This is achieved with a two pass algorithm on the existing iterator:
1. Gather metadata for each element. This includes the total size up until that
   element and the range of elements that should be included in the size.
2. Return the result from the underlying iterator with the additional
   field.

This algorithm is `O(N)` time on the number of elements in the iterator and
`O(N)` time, storing 16 bytes per element. This isn't super expensive but is a
lot more than the current algorithm which requires close to constant space.
Because of this I've implemented it as a wrapper on the iterator rather than on
by default, though it is now on in every one of our integration test cases.

Test plan:
- Added to the integration tests for full coverage.
2024-01-04 09:21:35 +00:00
Jake Hillion
5071519e45 oil v2 2023-08-23 15:59:53 +01:00
Jake Hillion
323daed329 googletest: change to FetchContent 2023-07-21 17:18:06 +01:00
Alastair Robertson
c3fec2624b Integration tests: Add tests for unrestricted unions
i.e. unions with non-POD members

We can't examine untagged unions, but we should be able to support
looking inside tagged unions at some point in the future.
2023-07-14 15:48:01 +01:00
Jake Hillion
5c3bb261c8 integration: add GLOB with CONFIGURE_DEPENDS to pick up files 2023-06-29 15:47:06 +01:00
Alastair Robertson
4bfa932b9b DrgnParser: Handle enum values in template params
We want to use the fully qualified name for scoped enums to keep the C++
compiler happy. When a parameter expects an enum value, we must supply
an enum value and not its underlying integer value.

Before:
  isset_bitset<1, 0>

After:
  isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked>
2023-06-26 15:13:21 +01:00
Jake Hillion
008e519cd7 tomlplusplus: compile header once 2023-05-30 16:43:10 +02:00
Alastair Robertson
8a19246c81 Integration tests: Add alignment tests 2023-05-24 15:42:26 +01:00
Alastair Robertson
280f663eb5 Only pass "-no-pie" to the linker
This fixes an "argument unused during compilation" warning from Clang
2023-05-23 10:36:42 +01:00
Alastair Robertson
9755688d1c Add folly shims to avoid linking against folly
This fixes linker errors in debug builds.

When building in debug mode (-DCMAKE_BUILD_TYPE=Debug), folly requires
the function "safe_assert_terminate" to be defined. To avoid building
and linking against folly, we define our own no-op version of this
function.
2023-04-21 12:56:54 +01:00
Jake Hillion
f47628ae2d add test for folly::fbstring 2023-04-06 15:11:09 +01:00
Alastair Robertson
d9b13ff101 Integration tests: Test templates 2023-03-09 11:51:41 +00:00
Alastair Robertson
5dd92b7f7f Integration tests: Test arrays 2023-03-09 11:51:41 +00:00
Alastair Robertson
9dd5c4b4cc Integration Tests: Test typedefs 2023-03-09 11:51:41 +00:00
Alastair Robertson
340a5e6803 Integration Tests: Test enums 2023-03-09 11:51:41 +00:00
Alastair Robertson
18e636d68d Integration tests: Add simple class and simple union tests 2023-03-09 11:51:41 +00:00
Jake Hillion
be273f6e0d tests: make relative config paths absolute when copying 2023-02-28 15:13:48 -08:00
Jake Hillion
3a236aa4f2 sorted_vec_set: finish changing to a container adapter 2023-02-24 10:31:59 -08:00
Jon Haslam
878b9bfebb
add std::conditional test (#79) 2023-02-22 14:37:59 -08:00
Alastair Robertson
ab499f6b83 Polymorphic inheritance tests 2023-01-30 13:22:09 +00:00
Jon Haslam
885c2ec369
Support std::multimap with comparator template parameter (#33)
Co-authored-by: Jon Haslam <jonhaslam@meta.com>
2023-01-20 16:30:02 +00:00
Jon Haslam
db90326c4b Initial commit 2022-12-19 06:37:51 -08:00