1#!/usr/bin/env bash 2 3set -euxo pipefail 4 5mkdir -p out/ 6OUT_DIR="$(pwd)/out" 7 8# move to `pdl-compiler` directory 9cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." &> /dev/null 10 11sed -e 's/little_endian_packets/big_endian_packets/' \ 12 -e '/Start: little_endian_only/,/End: little_endian_only/d' \ 13 < tests/canonical/le_test_file.pdl > "$OUT_DIR/be_test_file.pdl" 14 15mkdir -p "$OUT_DIR/canonical_test/src" 16 17cargo run --bin pdlc -- \ 18 tests/canonical/le_test_file.pdl \ 19 --output-format rust \ 20 --exclude-declaration UnsizedCustomField \ 21 --exclude-declaration Packet_Custom_Field_VariableSize \ 22 --exclude-declaration Struct_Custom_Field_VariableSize_ \ 23 --exclude-declaration Struct_Custom_Field_VariableSize \ 24 --exclude-declaration Checksum \ 25 --exclude-declaration Packet_Checksum_Field_FromStart \ 26 --exclude-declaration Packet_Checksum_Field_FromEnd \ 27 --exclude-declaration Struct_Checksum_Field_FromStart_ \ 28 --exclude-declaration Struct_Checksum_Field_FromStart \ 29 --exclude-declaration Struct_Checksum_Field_FromEnd_ \ 30 --exclude-declaration Struct_Checksum_Field_FromEnd \ 31 --exclude-declaration PartialParent5 \ 32 --exclude-declaration PartialParent12 \ 33 --exclude-declaration PartialChild5_A \ 34 --exclude-declaration PartialChild5_B \ 35 --exclude-declaration PartialChild12_A \ 36 --exclude-declaration PartialChild12_B \ 37 --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier \ 38 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_ \ 39 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier \ 40 --exclude-declaration Packet_Array_ElementSize_UnsizedCustomField \ 41 --exclude-declaration Packet_Array_ElementSize_SizedCustomField \ 42 > "$OUT_DIR/canonical_test/src/le_backend.rs" 43cargo run --bin pdlc -- \ 44 tests/canonical/le_test_vectors.json \ 45 --output-format rust \ 46 --tests \ 47 >> "$OUT_DIR/canonical_test/src/le_backend.rs" 48cargo run --bin pdlc -- \ 49 "$OUT_DIR/be_test_file.pdl" \ 50 --output-format rust \ 51 --exclude-declaration UnsizedCustomField \ 52 --exclude-declaration Packet_Custom_Field_VariableSize \ 53 --exclude-declaration Struct_Custom_Field_VariableSize_ \ 54 --exclude-declaration Struct_Custom_Field_VariableSize \ 55 --exclude-declaration Checksum \ 56 --exclude-declaration Packet_Checksum_Field_FromStart \ 57 --exclude-declaration Packet_Checksum_Field_FromEnd \ 58 --exclude-declaration Struct_Checksum_Field_FromStart_ \ 59 --exclude-declaration Struct_Checksum_Field_FromStart \ 60 --exclude-declaration Struct_Checksum_Field_FromEnd_ \ 61 --exclude-declaration Struct_Checksum_Field_FromEnd \ 62 --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier \ 63 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_ \ 64 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier \ 65 --exclude-declaration Packet_Array_ElementSize_UnsizedCustomField \ 66 --exclude-declaration Packet_Array_ElementSize_SizedCustomField \ 67 > "$OUT_DIR/canonical_test/src/be_backend.rs" 68cargo run --bin pdlc -- \ 69 tests/canonical/be_test_vectors.json \ 70 --output-format rust \ 71 --tests \ 72 >> "$OUT_DIR/canonical_test/src/be_backend.rs" 73 74cat <<EOT > "$OUT_DIR/canonical_test/src/lib.rs" 75mod le_backend; 76mod be_backend; 77EOT 78 79cat <<EOT > "$OUT_DIR/canonical_test/Cargo.toml" 80[package] 81name = "canonical_test" 82version = "0.0.0" 83publish = false 84edition = "2021" 85 86[features] 87default = ["serde"] 88 89[dependencies] 90bytes = {version = "1.4.0", features = ["serde"]} 91thiserror = "1.0.47" 92serde_json = "1.0.86" 93 94[dependencies.serde] 95version = "1.0.145" 96features = ["default", "derive", "serde_derive", "std", "rc"] 97optional = true 98 99[dependencies.pdl-runtime] 100path = "../../pdl-runtime" 101 102[workspace] 103EOT 104 105cd "$OUT_DIR/canonical_test" 106RUSTFLAGS=-Awarnings cargo test --tests 107