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_legacy \ 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_Field_VariableElementSize_ConstantSize \ 41 --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize \ 42 --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount \ 43 --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize \ 44 > "$OUT_DIR/canonical_test/src/le_backend.rs" 45cargo run --bin pdlc -- \ 46 tests/canonical/le_test_vectors.json \ 47 --output-format rust_legacy \ 48 --tests \ 49 >> "$OUT_DIR/canonical_test/src/le_backend.rs" 50cargo run --bin pdlc -- \ 51 "$OUT_DIR/be_test_file.pdl" \ 52 --output-format rust_legacy \ 53 --exclude-declaration UnsizedCustomField \ 54 --exclude-declaration Packet_Custom_Field_VariableSize \ 55 --exclude-declaration Struct_Custom_Field_VariableSize_ \ 56 --exclude-declaration Struct_Custom_Field_VariableSize \ 57 --exclude-declaration Checksum \ 58 --exclude-declaration Packet_Checksum_Field_FromStart \ 59 --exclude-declaration Packet_Checksum_Field_FromEnd \ 60 --exclude-declaration Struct_Checksum_Field_FromStart_ \ 61 --exclude-declaration Struct_Checksum_Field_FromStart \ 62 --exclude-declaration Struct_Checksum_Field_FromEnd_ \ 63 --exclude-declaration Struct_Checksum_Field_FromEnd \ 64 --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier \ 65 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_ \ 66 --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier \ 67 --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize \ 68 --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize \ 69 --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount \ 70 --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize \ 71 > "$OUT_DIR/canonical_test/src/be_backend.rs" 72cargo run --bin pdlc -- \ 73 tests/canonical/be_test_vectors.json \ 74 --output-format rust_legacy \ 75 --tests \ 76 >> "$OUT_DIR/canonical_test/src/be_backend.rs" 77 78cat <<EOT > "$OUT_DIR/canonical_test/src/lib.rs" 79mod le_backend; 80mod be_backend; 81EOT 82 83cat <<EOT > "$OUT_DIR/canonical_test/Cargo.toml" 84[package] 85name = "canonical_test" 86version = "0.0.0" 87publish = false 88edition = "2021" 89 90[features] 91default = ["serde"] 92 93[dependencies] 94bytes = {version = "1.4.0", features = ["serde"]} 95thiserror = "1.0.47" 96serde_json = "1.0.86" 97 98[dependencies.serde] 99version = "1.0.145" 100features = ["default", "derive", "serde_derive", "std", "rc"] 101optional = true 102 103[dependencies.pdl-runtime] 104path = "../../pdl-runtime" 105 106[workspace] 107EOT 108 109cd "$OUT_DIR/canonical_test" 110RUSTFLAGS=-Awarnings cargo test --tests 111