pw_unit_test: Ensure alignment of test fixtures

Previously, test fixtures were always aligned to max_align_t, which was
incorrect for test fixture types which required a higher alignment.

This change also moves GetAlignedSubspan into pw_bytes.

Change-Id: I6ac224c3a41c1e266ddd8e49410ccde2eac6a83a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210278
Commit-Queue: Taylor Cramer <cramertj@google.com>
Reviewed-by: Aaron Green <aarongreen@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
22 files changed
tree: 8d8ca53c2104de4f66378b45e45c86e21bda4497
  1. .allstar/
  2. .github/
  3. .vscode/
  4. build_overrides/
  5. docker/
  6. docs/
  7. kudzu/
  8. pw_alignment/
  9. pw_allocator/
  10. pw_analog/
  11. pw_android_toolchain/
  12. pw_arduino_build/
  13. pw_assert/
  14. pw_assert_basic/
  15. pw_assert_log/
  16. pw_assert_tokenized/
  17. pw_assert_zephyr/
  18. pw_async/
  19. pw_async2/
  20. pw_async2_basic/
  21. pw_async2_epoll/
  22. pw_async_basic/
  23. pw_base64/
  24. pw_bloat/
  25. pw_blob_store/
  26. pw_bluetooth/
  27. pw_bluetooth_hci/
  28. pw_bluetooth_profiles/
  29. pw_bluetooth_proxy/
  30. pw_bluetooth_sapphire/
  31. pw_boot/
  32. pw_boot_cortex_m/
  33. pw_build/
  34. pw_build_android/
  35. pw_build_info/
  36. pw_build_mcuxpresso/
  37. pw_bytes/
  38. pw_channel/
  39. pw_checksum/
  40. pw_chre/
  41. pw_chrono/
  42. pw_chrono_embos/
  43. pw_chrono_freertos/
  44. pw_chrono_rp2040/
  45. pw_chrono_stl/
  46. pw_chrono_threadx/
  47. pw_chrono_zephyr/
  48. pw_cli/
  49. pw_compilation_testing/
  50. pw_config_loader/
  51. pw_console/
  52. pw_containers/
  53. pw_cpu_exception/
  54. pw_cpu_exception_cortex_m/
  55. pw_cpu_exception_risc_v/
  56. pw_crypto/
  57. pw_digital_io/
  58. pw_digital_io_linux/
  59. pw_digital_io_mcuxpresso/
  60. pw_digital_io_rp2040/
  61. pw_dma_mcuxpresso/
  62. pw_docgen/
  63. pw_doctor/
  64. pw_emu/
  65. pw_env_setup/
  66. pw_env_setup_zephyr/
  67. pw_file/
  68. pw_format/
  69. pw_function/
  70. pw_fuzzer/
  71. pw_grpc/
  72. pw_hdlc/
  73. pw_hex_dump/
  74. pw_i2c/
  75. pw_i2c_linux/
  76. pw_i2c_mcuxpresso/
  77. pw_i2c_rp2040/
  78. pw_ide/
  79. pw_interrupt/
  80. pw_interrupt_cortex_m/
  81. pw_interrupt_xtensa/
  82. pw_interrupt_zephyr/
  83. pw_intrusive_ptr/
  84. pw_json/
  85. pw_kvs/
  86. pw_libc/
  87. pw_libcxx/
  88. pw_log/
  89. pw_log_android/
  90. pw_log_basic/
  91. pw_log_null/
  92. pw_log_rpc/
  93. pw_log_string/
  94. pw_log_tokenized/
  95. pw_log_zephyr/
  96. pw_malloc/
  97. pw_malloc_freelist/
  98. pw_malloc_freertos/
  99. pw_metric/
  100. pw_minimal_cpp_stdlib/
  101. pw_module/
  102. pw_multibuf/
  103. pw_multisink/
  104. pw_package/
  105. pw_perf_test/
  106. pw_persistent_ram/
  107. pw_polyfill/
  108. pw_preprocessor/
  109. pw_presubmit/
  110. pw_protobuf/
  111. pw_protobuf_compiler/
  112. pw_random/
  113. pw_result/
  114. pw_ring_buffer/
  115. pw_router/
  116. pw_rpc/
  117. pw_rpc_transport/
  118. pw_rust/
  119. pw_sensor/
  120. pw_snapshot/
  121. pw_software_update/
  122. pw_span/
  123. pw_spi/
  124. pw_spi_linux/
  125. pw_spi_mcuxpresso/
  126. pw_spi_rp2040/
  127. pw_status/
  128. pw_stm32cube_build/
  129. pw_stream/
  130. pw_stream_shmem_mcuxpresso/
  131. pw_stream_uart_linux/
  132. pw_stream_uart_mcuxpresso/
  133. pw_string/
  134. pw_symbolizer/
  135. pw_sync/
  136. pw_sync_baremetal/
  137. pw_sync_embos/
  138. pw_sync_freertos/
  139. pw_sync_stl/
  140. pw_sync_threadx/
  141. pw_sync_zephyr/
  142. pw_sys_io/
  143. pw_sys_io_ambiq_sdk/
  144. pw_sys_io_arduino/
  145. pw_sys_io_baremetal_lm3s6965evb/
  146. pw_sys_io_baremetal_stm32f429/
  147. pw_sys_io_emcraft_sf2/
  148. pw_sys_io_mcuxpresso/
  149. pw_sys_io_rp2040/
  150. pw_sys_io_stdio/
  151. pw_sys_io_stm32cube/
  152. pw_sys_io_zephyr/
  153. pw_system/
  154. pw_target_runner/
  155. pw_thread/
  156. pw_thread_embos/
  157. pw_thread_freertos/
  158. pw_thread_stl/
  159. pw_thread_threadx/
  160. pw_thread_zephyr/
  161. pw_tls_client/
  162. pw_tls_client_boringssl/
  163. pw_tls_client_mbedtls/
  164. pw_tokenizer/
  165. pw_toolchain/
  166. pw_toolchain_bazel/
  167. pw_trace/
  168. pw_trace_tokenized/
  169. pw_transfer/
  170. pw_uart/
  171. pw_unit_test/
  172. pw_unit_test_zephyr/
  173. pw_varint/
  174. pw_watch/
  175. pw_web/
  176. pw_work_queue/
  177. seed/
  178. targets/
  179. third_party/
  180. ts/
  181. zephyr/
  182. .bazelignore
  183. .bazelrc
  184. .bazelversion
  185. .black.toml
  186. .clang-format
  187. .clang-tidy
  188. .eslintrc.cjs
  189. .git-blame-ignore-revs
  190. .gitattributes
  191. .gitignore
  192. .gn
  193. .mypy.ini
  194. .prettierignore
  195. .prettierrc.cjs
  196. .pw_ide.yaml
  197. .pylintrc
  198. activate.bat
  199. Android.bp
  200. AUTHORS
  201. bootstrap.bat
  202. bootstrap.sh
  203. BUILD.bazel
  204. BUILD.gn
  205. BUILDCONFIG.gn
  206. CMakeLists.txt
  207. jest.config.ts
  208. Kconfig.zephyr
  209. LICENSE
  210. modules.gni
  211. OWNERS
  212. package-lock.json
  213. package.json
  214. pigweed.json
  215. PIGWEED_MODULES
  216. README.md
  217. rollup.config.js
  218. tsconfig.json
  219. WORKSPACE
  220. WORKSPACE_OWNERS
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links