aws-crt 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/aws-crt-ffi/CMakeLists.txt +49 -41
- data/aws-crt-ffi/crt/aws-c-auth/CMakeLists.txt +0 -10
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/credentials.h +3 -2
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/private/credentials_utils.h +4 -4
- data/aws-crt-ffi/crt/aws-c-auth/source/auth.c +1 -14
- data/aws-crt-ffi/crt/aws-c-auth/source/aws_imds_client.c +206 -68
- data/aws-crt-ffi/crt/aws-c-auth/source/aws_signing.c +5 -0
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_cached.c +6 -6
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_default_chain.c +16 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_ecs.c +0 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_process.c +0 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_sts_web_identity.c +0 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_x509.c +10 -7
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_utils.c +35 -26
- data/aws-crt-ffi/crt/aws-c-auth/source/signable_chunk.c +3 -2
- data/aws-crt-ffi/crt/aws-c-auth/tests/CMakeLists.txt +3 -2
- data/aws-crt-ffi/crt/aws-c-auth/tests/aws_imds_client_test.c +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/tests/credentials_provider_ecs_tests.c +3 -0
- data/aws-crt-ffi/crt/aws-c-auth/tests/credentials_provider_process_tests.c +65 -16
- data/aws-crt-ffi/crt/aws-c-auth/tests/credentials_tests.c +125 -0
- data/aws-crt-ffi/crt/aws-c-auth/tests/sigv4_signing_tests.c +68 -46
- data/aws-crt-ffi/crt/aws-c-cal/CMakeLists.txt +8 -3
- data/aws-crt-ffi/crt/aws-c-cal/bin/run_x_platform_fuzz_corpus/main.c +9 -0
- data/aws-crt-ffi/crt/aws-c-cal/builder.json +11 -3
- data/aws-crt-ffi/crt/aws-c-cal/cmake/aws-c-cal-config.cmake +14 -5
- data/aws-crt-ffi/crt/aws-c-cal/source/darwin/securityframework_ecc.c +6 -6
- data/aws-crt-ffi/crt/aws-c-cal/source/windows/bcrypt_ecc.c +12 -12
- data/aws-crt-ffi/crt/aws-c-cal/tests/test_case_helper.h +14 -14
- data/aws-crt-ffi/crt/aws-c-common/CMakeLists.txt +21 -1
- data/aws-crt-ffi/crt/aws-c-common/README.md +8 -0
- data/aws-crt-ffi/crt/aws-c-common/cmake/AwsCFlags.cmake +20 -5
- data/aws-crt-ffi/crt/aws-c-common/cmake/AwsFeatureTests.cmake +7 -1
- data/aws-crt-ffi/crt/aws-c-common/format-check.sh +1 -1
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/byte_buf.h +14 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/config.h.in +1 -0
- data/aws-crt-ffi/crt/{aws-c-auth/include/aws/auth → aws-c-common/include/aws/common}/external/cJSON.h +82 -74
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/json.h +335 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/logging.h +1 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/math.inl +2 -2
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/private/json_impl.h +22 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/testing/aws_test_harness.h +2 -0
- data/aws-crt-ffi/crt/aws-c-common/source/byte_buf.c +36 -0
- data/aws-crt-ffi/crt/aws-c-common/source/common.c +5 -2
- data/aws-crt-ffi/crt/aws-c-common/source/external/cJSON.c +3113 -0
- data/aws-crt-ffi/crt/aws-c-common/source/file.c +9 -0
- data/aws-crt-ffi/crt/aws-c-common/source/json.c +348 -0
- data/aws-crt-ffi/crt/aws-c-common/source/logging.c +7 -2
- data/aws-crt-ffi/crt/aws-c-common/source/posix/system_info.c +8 -0
- data/aws-crt-ffi/crt/aws-c-common/source/ref_count.c +3 -1
- data/aws-crt-ffi/crt/aws-c-common/source/windows/file.c +47 -0
- data/aws-crt-ffi/crt/aws-c-common/source/windows/system_info.c +2 -1
- data/aws-crt-ffi/crt/aws-c-common/tests/CMakeLists.txt +5 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/byte_buf_test.c +69 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/json_test.c +134 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/memtrace_test.c +6 -2
- data/aws-crt-ffi/crt/aws-c-event-stream/README.md +18 -35
- data/aws-crt-ffi/crt/aws-c-event-stream/include/aws/event-stream/event_stream.h +21 -2
- data/aws-crt-ffi/crt/aws-c-event-stream/include/aws/event-stream/event_stream_rpc_client.h +14 -2
- data/aws-crt-ffi/crt/aws-c-event-stream/include/aws/event-stream/event_stream_rpc_server.h +13 -0
- data/aws-crt-ffi/crt/aws-c-event-stream/include/aws/event-stream/private/event_stream_rpc_priv.h +7 -7
- data/aws-crt-ffi/crt/aws-c-event-stream/source/event_stream.c +257 -141
- data/aws-crt-ffi/crt/aws-c-event-stream/source/event_stream_channel_handler.c +1 -1
- data/aws-crt-ffi/crt/aws-c-event-stream/source/event_stream_rpc_client.c +31 -8
- data/aws-crt-ffi/crt/aws-c-event-stream/source/event_stream_rpc_server.c +63 -10
- data/aws-crt-ffi/crt/aws-c-event-stream/tests/CMakeLists.txt +2 -0
- data/aws-crt-ffi/crt/aws-c-event-stream/tests/event_stream_rpc_client_connection_test.c +157 -106
- data/aws-crt-ffi/crt/aws-c-event-stream/tests/event_stream_rpc_server_connection_test.c +168 -1
- data/aws-crt-ffi/crt/aws-c-event-stream/tests/message_deserializer_test.c +4 -2
- data/aws-crt-ffi/crt/aws-c-http/CMakeLists.txt +1 -0
- data/aws-crt-ffi/crt/aws-c-http/README.md +8 -0
- data/aws-crt-ffi/crt/aws-c-http/bin/elasticurl/main.c +1 -1
- data/aws-crt-ffi/crt/aws-c-http/builder.json +4 -3
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/connection.h +8 -1
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/connection_manager.h +45 -1
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/http2_stream_manager.h +63 -12
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/connection_impl.h +2 -1
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/h2_connection.h +20 -2
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/h2_frames.h +1 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/h2_stream.h +42 -13
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/http2_stream_manager_impl.h +17 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/http_impl.h +3 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/random_access_set.h +10 -3
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/request_response_impl.h +3 -17
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/request_response.h +108 -4
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/statistics.h +22 -0
- data/aws-crt-ffi/crt/aws-c-http/source/connection.c +8 -3
- data/aws-crt-ffi/crt/aws-c-http/source/connection_manager.c +22 -3
- data/aws-crt-ffi/crt/aws-c-http/source/connection_monitor.c +32 -14
- data/aws-crt-ffi/crt/aws-c-http/source/h1_connection.c +14 -0
- data/aws-crt-ffi/crt/aws-c-http/source/h1_encoder.c +7 -4
- data/aws-crt-ffi/crt/aws-c-http/source/h2_connection.c +161 -45
- data/aws-crt-ffi/crt/aws-c-http/source/h2_decoder.c +37 -8
- data/aws-crt-ffi/crt/aws-c-http/source/h2_frames.c +13 -1
- data/aws-crt-ffi/crt/aws-c-http/source/h2_stream.c +345 -87
- data/aws-crt-ffi/crt/aws-c-http/source/hpack.c +3 -0
- data/aws-crt-ffi/crt/aws-c-http/source/http.c +3 -0
- data/aws-crt-ffi/crt/aws-c-http/source/http2_stream_manager.c +266 -39
- data/aws-crt-ffi/crt/aws-c-http/source/random_access_set.c +9 -3
- data/aws-crt-ffi/crt/aws-c-http/source/request_response.c +80 -20
- data/aws-crt-ffi/crt/aws-c-http/source/statistics.c +11 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/CMakeLists.txt +28 -1
- data/aws-crt-ffi/crt/aws-c-http/tests/fuzz/fuzz_h2_decoder_correct.c +5 -3
- data/aws-crt-ffi/crt/aws-c-http/tests/h2_test_helper.c +133 -29
- data/aws-crt-ffi/crt/aws-c-http/tests/h2_test_helper.h +6 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/py_localhost/README.md +40 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/py_localhost/non_tls_server.py +56 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/py_localhost/server.py +329 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/test_connection_manager.c +1 -1
- data/aws-crt-ffi/crt/aws-c-http/tests/test_connection_monitor.c +2 -2
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h1_client.c +47 -34
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h1_encoder.c +4 -4
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h1_server.c +15 -12
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h2_client.c +582 -25
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h2_encoder.c +3 -3
- data/aws-crt-ffi/crt/aws-c-http/tests/test_localhost_integ.c +530 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/test_stream_manager.c +459 -67
- data/aws-crt-ffi/crt/aws-c-io/CMakeLists.txt +4 -0
- data/aws-crt-ffi/crt/aws-c-io/builder.json +3 -2
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/channel.h +21 -0
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/io.h +3 -0
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/socket.h +6 -0
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/stream.h +35 -5
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/tls_channel_handler.h +211 -15
- data/aws-crt-ffi/crt/aws-c-io/source/channel.c +56 -30
- data/aws-crt-ffi/crt/aws-c-io/source/darwin/secure_transport_tls_channel_handler.c +0 -24
- data/aws-crt-ffi/crt/aws-c-io/source/io.c +9 -0
- data/aws-crt-ffi/crt/aws-c-io/source/{pkcs11.c → pkcs11_lib.c} +162 -22
- data/aws-crt-ffi/crt/aws-c-io/source/pkcs11_private.h +18 -20
- data/aws-crt-ffi/crt/aws-c-io/source/pkcs11_tls_op_handler.c +221 -0
- data/aws-crt-ffi/crt/aws-c-io/source/posix/socket.c +135 -81
- data/aws-crt-ffi/crt/aws-c-io/source/retry_strategy.c +12 -8
- data/aws-crt-ffi/crt/aws-c-io/source/s2n/s2n_tls_channel_handler.c +252 -215
- data/aws-crt-ffi/crt/aws-c-io/source/stream.c +65 -82
- data/aws-crt-ffi/crt/aws-c-io/source/tls_channel_handler.c +188 -57
- data/aws-crt-ffi/crt/aws-c-io/source/windows/iocp/socket.c +271 -256
- data/aws-crt-ffi/crt/aws-c-io/tests/CMakeLists.txt +21 -12
- data/aws-crt-ffi/crt/aws-c-io/tests/channel_test.c +32 -4
- data/aws-crt-ffi/crt/aws-c-io/tests/io_lib_test.c +37 -0
- data/aws-crt-ffi/crt/aws-c-io/tests/pkcs11_test.c +412 -93
- data/aws-crt-ffi/crt/aws-c-io/tests/resources/ec_unittests.crt +15 -0
- data/aws-crt-ffi/crt/aws-c-io/tests/resources/ec_unittests.key +5 -0
- data/aws-crt-ffi/crt/aws-c-io/tests/resources/ec_unittests.p12 +0 -0
- data/aws-crt-ffi/crt/aws-c-io/tests/resources/ec_unittests.p8 +5 -0
- data/aws-crt-ffi/crt/aws-c-io/tests/resources/generateCerts.sh +24 -15
- data/aws-crt-ffi/crt/aws-c-io/tests/socket_test.c +72 -1
- data/aws-crt-ffi/crt/s2n/CMakeLists.txt +6 -1
- data/aws-crt-ffi/crt/s2n/bindings/rust/Cargo.toml +1 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/generate/src/main.rs +105 -82
- data/aws-crt-ffi/crt/s2n/bindings/rust/generate.sh +1 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls/Cargo.toml +2 -2
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls/src/raw/config.rs +1 -1
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-sys/Cargo.toml +1 -1
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-sys/build.rs +84 -30
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-sys/src/lib.rs +4 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/Cargo.toml +21 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/examples/certs/cert.pem +14 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/examples/certs/key.pem +8 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/examples/client.rs +45 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/examples/server.rs +60 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/src/lib.rs +150 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/tests/handshake.rs +51 -0
- data/aws-crt-ffi/crt/s2n/crypto/s2n_drbg.c +98 -77
- data/aws-crt-ffi/crt/s2n/crypto/s2n_drbg.h +10 -7
- data/aws-crt-ffi/crt/s2n/crypto/s2n_openssl.h +2 -0
- data/aws-crt-ffi/crt/s2n/error/s2n_errno.c +1 -1
- data/aws-crt-ffi/crt/s2n/error/s2n_errno.h +1 -0
- data/aws-crt-ffi/crt/s2n/s2n.mk +7 -0
- data/aws-crt-ffi/crt/s2n/tests/cbmc/templates/scripts/repository.py +233 -0
- data/aws-crt-ffi/crt/s2n/tests/cbmc/templates/scripts/setup-proof.py +8 -7
- data/aws-crt-ffi/crt/s2n/tests/cbmc/templates/scripts/setup.py +17 -18
- data/aws-crt-ffi/crt/s2n/tests/cbmc/templates/scripts/util.py +41 -23
- data/aws-crt-ffi/crt/s2n/tests/fuzz/LD_PRELOAD/global_overrides.c +3 -3
- data/aws-crt-ffi/crt/s2n/tests/integration/s2n_client_endpoint_handshake_test.py +2 -2
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/Makefile +13 -42
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/README.md +6 -1
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/common.py +118 -53
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/configuration.py +108 -88
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/conftest.py +6 -3
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/constants.py +6 -4
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/fixtures.py +21 -12
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/global_flags.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/processes.py +62 -19
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/providers.py +304 -48
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_client_authentication.py +20 -11
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_cross_compatibility.py +41 -17
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_dynamic_record_sizes.py +6 -3
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_early_data.py +105 -48
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_external_psk.py +160 -76
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_fragmentation.py +59 -26
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_happy_path.py +42 -28
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_hello_retry_requests.py +33 -13
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_key_update.py +29 -11
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_ocsp.py +138 -0
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_pq_handshake.py +103 -36
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_session_resumption.py +52 -25
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_signature_algorithms.py +47 -21
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_sni_match.py +13 -9
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_sslyze.py +88 -17
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_version_negotiation.py +71 -22
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_well_known_endpoints.py +4 -3
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/tox.ini +1 -0
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/utils.py +50 -15
- data/aws-crt-ffi/crt/s2n/tests/litani/CHANGELOG +131 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/CONTRIBUTING.md +16 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/README.md +36 -14
- data/aws-crt-ffi/crt/s2n/tests/litani/THIRD-PARTY +205 -41
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/bin/build-html-doc +7 -7
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/configure +27 -23
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/src/man/litani-add-job.scdoc +7 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/src/man/litani-dump-run.scdoc +7 -5
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/src/man/litani-transform-jobs.scdoc +248 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/src/man/litani.scdoc +2 -2
- data/aws-crt-ffi/crt/s2n/tests/litani/doc/templates/index.jinja.html +4 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/add-root-node/README +12 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/add-root-node/original-run.sh +52 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/add-root-node/run-all.py +71 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/no-standalone-transform/README +13 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/no-standalone-transform/run-1.sh +34 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/no-standalone-transform/run-2.sh +35 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/no-standalone-transform/run-3.sh +34 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/no-standalone-transform/run-all.py +60 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/README.md +10 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/assumptions.html +42 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/file.dat +7 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/histogram.dat +7 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/run-1.sh +41 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/run-2.sh +47 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/run-3.sh +41 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/run-all.py +34 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/fib-table.py +40 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/fib.plt +5 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/fib.py +32 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/sin-output.py +40 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/sin.plt +5 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/scripts/sin.py +30 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/templates/fib-table.jinja.html +45 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/examples/rich-output/templates/sin-output.jinja.html +30 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/add_job.py +55 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/graph.py +2 -2
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/litani.py +6 -1
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/litani_report.py +18 -21
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/ninja.py +2 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/run_printer.py +26 -7
- data/aws-crt-ffi/crt/s2n/tests/litani/lib/transform_jobs.py +84 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/litani +28 -33
- data/aws-crt-ffi/crt/s2n/tests/litani/script/release +220 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/templates/dashboard.jinja.html +78 -15
- data/aws-crt-ffi/crt/s2n/tests/litani/templates/pipeline.jinja.html +21 -5
- data/aws-crt-ffi/crt/s2n/tests/litani/test/README +15 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/run +56 -33
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/custom_stages.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/cwd.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/dump_run.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/graph_line_break.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/html_node.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/job_id_env.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/multiproc_dump_run.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/no_pool_serialize.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/no_pool_serialize_graph.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/no_timed_out.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/no_timed_out_timeout_ignored.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/no_timed_out_timeout_ok.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/pipeline_order.py +53 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/pool_serialize.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/pool_serialize_graph.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/single_pool.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out_subprocess.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out_subprocess_multi_shell.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out_subprocess_shell.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out_timeout_ignored.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/timed_out_timeout_ok.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/transform_delete_job.py +54 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/transform_modify_job.py +46 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/transform_no_change_job.py +44 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/e2e/tests/zero_pool.py +1 -0
- data/aws-crt-ffi/crt/s2n/tests/litani/test/run +82 -12
- data/aws-crt-ffi/crt/s2n/tests/s2n_test.h +58 -33
- data/aws-crt-ffi/crt/s2n/tests/testlib/s2n_key_schedule_testlib.c +18 -6
- data/aws-crt-ffi/crt/s2n/tests/testlib/s2n_pq_kat_test_utils.c +4 -4
- data/aws-crt-ffi/crt/s2n/tests/testlib/s2n_testlib.h +2 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_hello_retry_test.c +66 -2
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_connection_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_drbg_test.c +34 -14
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_fork_generation_number_test.c +28 -5
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_mem_usage_test.c +6 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_override_openssl_random_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_random_test.c +60 -41
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_self_talk_broken_pipe_test.c +2 -2
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_handshake_early_data_test.c +3 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_hybrid_shared_secret_test.c +9 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_key_schedule_rfc8448_test.c +31 -130
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_key_schedule_test.c +2 -4
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_pq_handshake_test.c +11 -6
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_secrets_rfc8448_test.c +19 -21
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_secrets_test.c +109 -60
- data/aws-crt-ffi/crt/s2n/tls/s2n_config.c +1 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_config.h +1 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_connection.c +29 -24
- data/aws-crt-ffi/crt/s2n/tls/s2n_connection.h +5 -5
- data/aws-crt-ffi/crt/s2n/tls/s2n_handshake_hashes.h +1 -7
- data/aws-crt-ffi/crt/s2n/tls/s2n_handshake_io.c +2 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_handshake_transcript.c +0 -44
- data/aws-crt-ffi/crt/s2n/tls/s2n_internal.h +0 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_quic_support.h +1 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_tls13_key_schedule.c +1 -2
- data/aws-crt-ffi/crt/s2n/tls/s2n_tls13_secrets.c +84 -44
- data/aws-crt-ffi/crt/s2n/tls/s2n_tls13_secrets.h +3 -9
- data/aws-crt-ffi/crt/s2n/utils/s2n_blob.h +15 -8
- data/aws-crt-ffi/crt/s2n/utils/s2n_fork_detection.c +2 -6
- data/aws-crt-ffi/crt/s2n/utils/s2n_random.c +9 -9
- data/aws-crt-ffi/src/input_stream.c +32 -15
- data/ext/compile.rb +13 -5
- data/lib/aws-crt/platforms.rb +14 -5
- data/lib/aws-crt/string_blob.rb +3 -3
- metadata +61 -7
- data/aws-crt-ffi/crt/aws-c-auth/source/external/cJSON.c +0 -2987
- data/aws-crt-ffi/crt/aws-c-auth/tests/external/cJSON.c +0 -2986
- data/aws-crt-ffi/crt/aws-c-io/tests/error_test.c +0 -20
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this file except in compliance with the License.
|
7
|
+
# A copy of the License is located at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# or in the "license" file accompanying this file. This file is distributed
|
12
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
13
|
+
# express or implied. See the License for the specific language governing
|
14
|
+
# permissions and limitations under the License.
|
15
|
+
|
16
|
+
LITANI=${LITANI:-litani}
|
17
|
+
|
18
|
+
if [ "$1" != "--no-standalone" ]; then
|
19
|
+
"${LITANI}" init --project-name "literal-stdout-examples"
|
20
|
+
fi
|
21
|
+
|
22
|
+
"${LITANI}" add-job \
|
23
|
+
--pipeline-name "verify assumptions" \
|
24
|
+
--description "list out assumptions" \
|
25
|
+
--command "cat assumptions.html" \
|
26
|
+
--ci-stage test \
|
27
|
+
--phony-outputs assumptions.html \
|
28
|
+
--tags literal-stdout
|
29
|
+
|
30
|
+
"${LITANI}" add-job \
|
31
|
+
--pipeline-name "conduct analysis" \
|
32
|
+
--description "generate the histogram" \
|
33
|
+
--command "gnuplot -c histogram.dat" \
|
34
|
+
--ci-stage report \
|
35
|
+
--inputs file.dat \
|
36
|
+
--phony-outputs histogram.svg \
|
37
|
+
--tags literal-stdout
|
38
|
+
|
39
|
+
if [ "$1" != "--no-standalone" ]; then
|
40
|
+
"${LITANI}" run-build
|
41
|
+
fi
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this file except in compliance with the License.
|
7
|
+
# A copy of the License is located at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# or in the "license" file accompanying this file. This file is distributed
|
12
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
13
|
+
# express or implied. See the License for the specific language governing
|
14
|
+
# permissions and limitations under the License.
|
15
|
+
|
16
|
+
LITANI=${LITANI:-litani}
|
17
|
+
|
18
|
+
if [ "$1" != "--no-standalone" ]; then
|
19
|
+
"${LITANI}" init --project-name "front-page-output examples"
|
20
|
+
fi
|
21
|
+
|
22
|
+
"${LITANI}" add-job \
|
23
|
+
--pipeline-name "fibonacci" \
|
24
|
+
--description "write fibonacci to csv" \
|
25
|
+
--command "python3 scripts/fib.py -o fib.csv" \
|
26
|
+
--ci-stage test \
|
27
|
+
--outputs "fib.csv"
|
28
|
+
|
29
|
+
"${LITANI}" add-job \
|
30
|
+
--pipeline-name "fibonacci" \
|
31
|
+
--description "plot fibonacci results" \
|
32
|
+
--command "gnuplot scripts/fib.plt" \
|
33
|
+
--ci-stage report \
|
34
|
+
--inputs "fib.csv" \
|
35
|
+
--tags "front-page-text"
|
36
|
+
|
37
|
+
"${LITANI}" add-job \
|
38
|
+
--pipeline-name "fibonacci" \
|
39
|
+
--description "table fibonacci results" \
|
40
|
+
--command "python3 scripts/fib-table.py -i fib.csv" \
|
41
|
+
--ci-stage report \
|
42
|
+
--inputs "fib.csv" \
|
43
|
+
--tags "front-page-text"
|
44
|
+
|
45
|
+
if [ "$1" != "--no-standalone" ]; then
|
46
|
+
"${LITANI}" run-build
|
47
|
+
fi
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this file except in compliance with the License.
|
7
|
+
# A copy of the License is located at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# or in the "license" file accompanying this file. This file is distributed
|
12
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
13
|
+
# express or implied. See the License for the specific language governing
|
14
|
+
# permissions and limitations under the License.
|
15
|
+
|
16
|
+
LITANI=${LITANI:-litani}
|
17
|
+
|
18
|
+
if [ "$1" != "--no-standalone" ]; then
|
19
|
+
"${LITANI}" init \
|
20
|
+
--project-name "front-page-output and literal-stdout examples"
|
21
|
+
fi
|
22
|
+
|
23
|
+
"${LITANI}" add-job \
|
24
|
+
--pipeline-name "sin" \
|
25
|
+
--description "write sin to csv" \
|
26
|
+
--command "python3 scripts/sin.py -o sin.csv" \
|
27
|
+
--ci-stage test \
|
28
|
+
--outputs "sin.csv"
|
29
|
+
|
30
|
+
"${LITANI}" add-job \
|
31
|
+
--pipeline-name "sin" \
|
32
|
+
--description "display sin results" \
|
33
|
+
--command \
|
34
|
+
"gnuplot scripts/sin.plt; python3 scripts/sin-output.py -i sin.csv" \
|
35
|
+
--ci-stage report \
|
36
|
+
--inputs "sin.csv" \
|
37
|
+
--tags front-page-text literal-stdout
|
38
|
+
|
39
|
+
if [ "$1" != "--no-standalone" ]; then
|
40
|
+
"${LITANI}" run-build
|
41
|
+
fi
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
#
|
3
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this file except in compliance with the License.
|
7
|
+
# A copy of the License is located at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# or in the "license" file accompanying this file. This file is distributed
|
12
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
13
|
+
# express or implied. See the License for the specific language governing
|
14
|
+
# permissions and limitations under the License.
|
15
|
+
|
16
|
+
|
17
|
+
import os
|
18
|
+
import pathlib
|
19
|
+
import re
|
20
|
+
import subprocess
|
21
|
+
|
22
|
+
|
23
|
+
litani = os.getenv("LITANI", "litani")
|
24
|
+
this_dir = pathlib.Path(__file__).parent
|
25
|
+
|
26
|
+
subprocess.run(
|
27
|
+
[litani, "init", "--project-name", "rich-output-examples"], check=True)
|
28
|
+
|
29
|
+
pat = re.compile(r"run-\d.sh")
|
30
|
+
for fyle in this_dir.iterdir():
|
31
|
+
if pat.match(fyle.name):
|
32
|
+
subprocess.run([fyle, "--no-standalone"], check=True)
|
33
|
+
|
34
|
+
subprocess.run([litani, "run-build"], check=True)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
4
|
+
# You may not use this file except in compliance with the License.
|
5
|
+
# A copy of the License is located at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is distributed
|
10
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
11
|
+
# express or implied. See the License for the specific language governing
|
12
|
+
# permissions and limitations under the License.
|
13
|
+
|
14
|
+
import argparse
|
15
|
+
import jinja2
|
16
|
+
|
17
|
+
|
18
|
+
def main():
|
19
|
+
parser = argparse.ArgumentParser()
|
20
|
+
parser.add_argument("-i", "--input", required=True, help="input csv")
|
21
|
+
args = parser.parse_args()
|
22
|
+
|
23
|
+
data = {}
|
24
|
+
with open(args.input, "r") as handle:
|
25
|
+
for line in handle:
|
26
|
+
values = line.split(',')
|
27
|
+
data[int(values[0].strip())] = int(values[1].strip())
|
28
|
+
|
29
|
+
env = jinja2.Environment(
|
30
|
+
loader=jinja2.FileSystemLoader("./templates"),
|
31
|
+
autoescape=jinja2.select_autoescape(
|
32
|
+
enabled_extensions=('csv'),
|
33
|
+
default_for_string=True))
|
34
|
+
table_template = env.get_template("fib-table.jinja.html")
|
35
|
+
table = table_template.render(data=data)
|
36
|
+
print(table)
|
37
|
+
|
38
|
+
|
39
|
+
if __name__ == "__main__":
|
40
|
+
main()
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
4
|
+
# You may not use this file except in compliance with the License.
|
5
|
+
# A copy of the License is located at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is distributed
|
10
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
11
|
+
# express or implied. See the License for the specific language governing
|
12
|
+
# permissions and limitations under the License.
|
13
|
+
|
14
|
+
import argparse
|
15
|
+
|
16
|
+
|
17
|
+
def main():
|
18
|
+
parser = argparse.ArgumentParser()
|
19
|
+
parser.add_argument("-o", "--output", required=True, help="output file")
|
20
|
+
args = parser.parse_args()
|
21
|
+
n = 10
|
22
|
+
fib = [0] * n
|
23
|
+
fib[1] = 1
|
24
|
+
for i in range(2, n):
|
25
|
+
fib[i] = fib[i-1] + fib[i-2]
|
26
|
+
with open(args.output, "w") as handle:
|
27
|
+
for index, value in enumerate(fib, 1):
|
28
|
+
print(f"{index}, {value}", file=handle)
|
29
|
+
|
30
|
+
|
31
|
+
if __name__ == "__main__":
|
32
|
+
main()
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
4
|
+
# You may not use this file except in compliance with the License.
|
5
|
+
# A copy of the License is located at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is distributed
|
10
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
11
|
+
# express or implied. See the License for the specific language governing
|
12
|
+
# permissions and limitations under the License.
|
13
|
+
|
14
|
+
import argparse
|
15
|
+
import jinja2
|
16
|
+
|
17
|
+
|
18
|
+
def main():
|
19
|
+
parser = argparse.ArgumentParser()
|
20
|
+
parser.add_argument("-i", "--input", required=True, help="input csv")
|
21
|
+
args = parser.parse_args()
|
22
|
+
|
23
|
+
data = {}
|
24
|
+
with open(args.input, "r") as handle:
|
25
|
+
for line in handle:
|
26
|
+
values = line.split(',')
|
27
|
+
data[float(values[0].strip())] = float(values[1].strip())
|
28
|
+
|
29
|
+
env = jinja2.Environment(
|
30
|
+
loader=jinja2.FileSystemLoader("./templates"),
|
31
|
+
autoescape=jinja2.select_autoescape(
|
32
|
+
enabled_extensions=('csv'),
|
33
|
+
default_for_string=True))
|
34
|
+
table_template = env.get_template("sin-output.jinja.html")
|
35
|
+
output = table_template.render(data=data)
|
36
|
+
print(output)
|
37
|
+
|
38
|
+
|
39
|
+
if __name__ == "__main__":
|
40
|
+
main()
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
4
|
+
# You may not use this file except in compliance with the License.
|
5
|
+
# A copy of the License is located at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is distributed
|
10
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
11
|
+
# express or implied. See the License for the specific language governing
|
12
|
+
# permissions and limitations under the License.
|
13
|
+
|
14
|
+
import argparse
|
15
|
+
import math
|
16
|
+
|
17
|
+
|
18
|
+
def main():
|
19
|
+
parser = argparse.ArgumentParser()
|
20
|
+
parser.add_argument("-o", "--output", required=True, help="output file")
|
21
|
+
args = parser.parse_args()
|
22
|
+
with open(args.output, "w") as handle:
|
23
|
+
for i in range(9):
|
24
|
+
val = ((2.0 * math.pi) / 8.0) * i
|
25
|
+
print(f"{val}, {math.sin(val)}",
|
26
|
+
file=handle)
|
27
|
+
|
28
|
+
|
29
|
+
if __name__ == "__main__":
|
30
|
+
main()
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<div>
|
2
|
+
<style type="text/css" scoped>
|
3
|
+
table {
|
4
|
+
background-color: white;
|
5
|
+
color: black;
|
6
|
+
text-align: center;
|
7
|
+
padding: 1em;
|
8
|
+
border-radius: 0.3em;
|
9
|
+
}
|
10
|
+
th {
|
11
|
+
border-bottom: 3px solid black;
|
12
|
+
}
|
13
|
+
th, td {
|
14
|
+
padding: 0.5em;
|
15
|
+
margin: 0.3em;
|
16
|
+
}
|
17
|
+
.danger {
|
18
|
+
background-color: #ff8585;
|
19
|
+
}
|
20
|
+
.warning {
|
21
|
+
background-color: #fff5ab;
|
22
|
+
}
|
23
|
+
.good {
|
24
|
+
background-color: #ceffc9;
|
25
|
+
}
|
26
|
+
</style>
|
27
|
+
<table>
|
28
|
+
<th>nth fibonacci number</th>
|
29
|
+
<th>value</th>
|
30
|
+
{% for n, value in data.items() %}
|
31
|
+
<tr>
|
32
|
+
<td>{{ n }}</td>
|
33
|
+
{% if value > 30 %}
|
34
|
+
<td class="danger">
|
35
|
+
{% elif value > 10 %}
|
36
|
+
<td class="warning">
|
37
|
+
{% else %}
|
38
|
+
<td class="good">
|
39
|
+
{% endif %}
|
40
|
+
{{ value }}
|
41
|
+
</td>
|
42
|
+
{% endfor %}
|
43
|
+
</tr>
|
44
|
+
</table>
|
45
|
+
</div>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<div>
|
2
|
+
<style type="text/css" scoped>
|
3
|
+
table {
|
4
|
+
background-color: white;
|
5
|
+
color: black;
|
6
|
+
text-align: center;
|
7
|
+
padding: 1em;
|
8
|
+
border-radius: 0.3em;
|
9
|
+
margin: auto;
|
10
|
+
width: 50%;
|
11
|
+
}
|
12
|
+
th {
|
13
|
+
border-bottom: 3px solid black;
|
14
|
+
}
|
15
|
+
th, td {
|
16
|
+
padding: 0.5em;
|
17
|
+
margin: 0.3em;
|
18
|
+
}
|
19
|
+
</style>
|
20
|
+
<table>
|
21
|
+
<th>x</th>
|
22
|
+
<th>sin(x)</th>
|
23
|
+
{% for n, value in data.items() %}
|
24
|
+
<tr>
|
25
|
+
<td>{{ n }}</td>
|
26
|
+
<td>{{ value }}</td>
|
27
|
+
</tr>
|
28
|
+
{% endfor %}
|
29
|
+
</table>
|
30
|
+
</div>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License").
|
4
|
+
# You may not use this file except in compliance with the License.
|
5
|
+
# A copy of the License is located at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is distributed
|
10
|
+
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
11
|
+
# express or implied. See the License for the specific language governing
|
12
|
+
# permissions and limitations under the License
|
13
|
+
|
14
|
+
import json
|
15
|
+
import logging
|
16
|
+
import sys
|
17
|
+
import uuid
|
18
|
+
|
19
|
+
from lib import litani
|
20
|
+
|
21
|
+
|
22
|
+
async def add_job(job_dict):
|
23
|
+
cache_file = litani.get_cache_dir() / litani.CACHE_FILE
|
24
|
+
with open(cache_file) as handle:
|
25
|
+
cache_contents = json.load(handle)
|
26
|
+
if job_dict["ci_stage"] not in cache_contents["stages"]:
|
27
|
+
valid_stages = "', '".join(cache_contents["stages"])
|
28
|
+
logging.error(
|
29
|
+
"Invalid stage name '%s' was provided, possible "
|
30
|
+
"stage names are: '%s'", job_dict["ci_stage"], valid_stages)
|
31
|
+
sys.exit(1)
|
32
|
+
|
33
|
+
jobs_dir = litani.get_cache_dir() / litani.JOBS_DIR
|
34
|
+
jobs_dir.mkdir(exist_ok=True, parents=True)
|
35
|
+
|
36
|
+
if job_dict["phony_outputs"]:
|
37
|
+
if not job_dict["outputs"]:
|
38
|
+
job_dict["outputs"] = job_dict["phony_outputs"]
|
39
|
+
else:
|
40
|
+
for phony_output in job_dict["phony_outputs"]:
|
41
|
+
if phony_output not in job_dict["outputs"]:
|
42
|
+
job_dict["outputs"].append(phony_output)
|
43
|
+
|
44
|
+
if "func" in job_dict:
|
45
|
+
job_dict.pop("func")
|
46
|
+
|
47
|
+
job_id = str(uuid.uuid4())
|
48
|
+
job_dict["job_id"] = job_id
|
49
|
+
job_dict["status_file"] = str(
|
50
|
+
litani.get_status_dir() / ("%s.json" % job_id))
|
51
|
+
|
52
|
+
logging.debug("Adding job: %s", json.dumps(job_dict, indent=2))
|
53
|
+
|
54
|
+
with litani.atomic_write(jobs_dir / ("%s.json" % job_id)) as handle:
|
55
|
+
print(json.dumps(job_dict, indent=2), file=handle)
|
@@ -56,12 +56,12 @@ class DependencyNode(Node):
|
|
56
56
|
self.id = hash(fyle)
|
57
57
|
|
58
58
|
path = pathlib.Path(fyle)
|
59
|
-
|
59
|
+
name, ext = os.path.splitext(path.name)
|
60
60
|
|
61
61
|
self.style = style
|
62
62
|
|
63
63
|
wrapper = get_text_wrapper(line_width)
|
64
|
-
path_name = "\n".join(wrapper.wrap(
|
64
|
+
path_name = "\n".join(wrapper.wrap(name))
|
65
65
|
self.style["label"] = f"{path_name}{ext}"
|
66
66
|
|
67
67
|
|
@@ -33,7 +33,7 @@ TIME_FORMAT_R = "%Y-%m-%dT%H:%M:%SZ"
|
|
33
33
|
TIME_FORMAT_W = "%Y-%m-%dT%H:%M:%SZ"
|
34
34
|
TIME_FORMAT_MS = "%Y-%m-%dT%H:%M:%S.%fZ"
|
35
35
|
VERSION_MAJOR = 1
|
36
|
-
VERSION_MINOR =
|
36
|
+
VERSION_MINOR = 22
|
37
37
|
VERSION_PATCH = 0
|
38
38
|
RC = False
|
39
39
|
|
@@ -239,6 +239,11 @@ def add_jobs_to_cache():
|
|
239
239
|
jobs = []
|
240
240
|
cache_dir = get_cache_dir()
|
241
241
|
jobs_dir = cache_dir / JOBS_DIR
|
242
|
+
if not jobs_dir.exists():
|
243
|
+
logging.error(
|
244
|
+
"Cannot run build: no jobs were added. Run `litani add-job` one or "
|
245
|
+
"more times before running `litani run-build`.")
|
246
|
+
sys.exit(1)
|
242
247
|
for job_file in os.listdir(jobs_dir):
|
243
248
|
with open(jobs_dir / job_file) as handle:
|
244
249
|
jobs.append(json.load(handle))
|
@@ -464,7 +464,7 @@ def sort_run(run):
|
|
464
464
|
pipe["ci_stages"] = stages
|
465
465
|
add_pipe_stats(pipe)
|
466
466
|
pipelines.append(pipe)
|
467
|
-
pipelines = sorted(pipelines, key=lambda p: p["status"])
|
467
|
+
pipelines = sorted(pipelines, key=lambda p: (p["status"], p["name"]))
|
468
468
|
run["pipelines"] = pipelines
|
469
469
|
add_run_stats(run)
|
470
470
|
|
@@ -508,17 +508,6 @@ def get_dashboard_svgs(run, env, gnuplot):
|
|
508
508
|
}
|
509
509
|
|
510
510
|
|
511
|
-
def get_git_hash():
|
512
|
-
try:
|
513
|
-
cmd = ["git", "show", "--no-patch", "--pretty=format:%h"]
|
514
|
-
litani_dir = pathlib.Path(os.path.realpath(__file__)).parent
|
515
|
-
proc = subprocess.run(
|
516
|
-
cmd, text=True, stdout=subprocess.PIPE, check=True, cwd=litani_dir)
|
517
|
-
return proc.stdout.strip()
|
518
|
-
except RuntimeError:
|
519
|
-
return None
|
520
|
-
|
521
|
-
|
522
511
|
def get_summary(run):
|
523
512
|
ret = {
|
524
513
|
"in_progress": 0,
|
@@ -555,18 +544,10 @@ def render(run, report_dir, pipeline_depgraph_renderer):
|
|
555
544
|
|
556
545
|
litani_report_archive_path = os.getenv("LITANI_REPORT_ARCHIVE_PATH")
|
557
546
|
|
558
|
-
dash_templ = env.get_template("dashboard.jinja.html")
|
559
|
-
page = dash_templ.render(
|
560
|
-
run=run, svgs=svgs, litani_hash=get_git_hash(),
|
561
|
-
litani_version=litani.VERSION,
|
562
|
-
litani_report_archive_path=litani_report_archive_path,
|
563
|
-
summary=get_summary(run))
|
564
|
-
with litani.atomic_write(temporary_report_dir / "index.html") as handle:
|
565
|
-
print(page, file=handle)
|
566
|
-
|
567
547
|
with litani.atomic_write(temporary_report_dir / litani.RUN_FILE) as handle:
|
568
548
|
print(json.dumps(run, indent=2), file=handle)
|
569
549
|
|
550
|
+
front_page_outputs = {}
|
570
551
|
pipe_templ = env.get_template("pipeline.jinja.html")
|
571
552
|
for pipe in run["pipelines"]:
|
572
553
|
pipeline_depgraph_renderer.render(
|
@@ -581,11 +562,27 @@ def render(run, report_dir, pipeline_depgraph_renderer):
|
|
581
562
|
MemoryTraceRenderer.render(
|
582
563
|
temporary_report_dir / pipe["url"], env, job, gnuplot)
|
583
564
|
|
565
|
+
tags = job["wrapper_arguments"]["tags"]
|
566
|
+
description = job["wrapper_arguments"]["description"]
|
567
|
+
if tags and "front-page-text" in tags:
|
568
|
+
if "stdout" in job and job["stdout"]:
|
569
|
+
front_page_outputs[description] = job
|
570
|
+
|
584
571
|
pipe_page = pipe_templ.render(run=run, pipe=pipe)
|
585
572
|
with litani.atomic_write(
|
586
573
|
temporary_report_dir / pipe["url"] / "index.html") as handle:
|
587
574
|
print(pipe_page, file=handle)
|
588
575
|
|
576
|
+
dash_templ = env.get_template("dashboard.jinja.html")
|
577
|
+
page = dash_templ.render(
|
578
|
+
run=run, svgs=svgs,
|
579
|
+
litani_version=litani.VERSION,
|
580
|
+
litani_report_archive_path=litani_report_archive_path,
|
581
|
+
summary=get_summary(run), front_page_outputs=front_page_outputs)
|
582
|
+
|
583
|
+
with litani.atomic_write(temporary_report_dir / "index.html") as handle:
|
584
|
+
print(page, file=handle)
|
585
|
+
|
589
586
|
|
590
587
|
temp_symlink_dir = report_dir.with_name(report_dir.name + str(uuid.uuid4()))
|
591
588
|
os.symlink(temporary_report_dir, temp_symlink_dir)
|
@@ -112,8 +112,12 @@ def get_run_checker():
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
def _exit_success(run):
|
116
|
-
|
115
|
+
def _exit_success(run, out_file):
|
116
|
+
if out_file:
|
117
|
+
with lib.litani.atomic_write(out_file) as handle:
|
118
|
+
print(json.dumps(run, indent=2), file=handle)
|
119
|
+
else:
|
120
|
+
print(json.dumps(run, indent=2))
|
117
121
|
sys.exit(0)
|
118
122
|
|
119
123
|
|
@@ -122,13 +126,27 @@ def _exit_error():
|
|
122
126
|
sys.exit(0)
|
123
127
|
|
124
128
|
|
125
|
-
def _try_dump_run(cache_dir, pid, sleeper, check_run):
|
126
|
-
|
129
|
+
def _try_dump_run(cache_dir, pid, sleeper, check_run, out_file):
|
130
|
+
try:
|
131
|
+
os.kill(pid, DUMP_SIGNAL)
|
132
|
+
except ProcessLookupError:
|
133
|
+
logging.debug("pid %s does not match to a running process", pid)
|
134
|
+
latest_run_file = cache_dir / lib.litani.RUN_FILE
|
135
|
+
try:
|
136
|
+
with open(latest_run_file) as handle:
|
137
|
+
latest_run = json.load(handle)
|
138
|
+
check_run(latest_run)
|
139
|
+
_exit_success(latest_run, out_file)
|
140
|
+
except (
|
141
|
+
FileNotFoundError, json.decoder.JSONDecodeError,
|
142
|
+
InconsistentRunError):
|
143
|
+
logging.warning("Could not find run.json inside the latest run")
|
144
|
+
_exit_error()
|
127
145
|
try:
|
128
146
|
with open(cache_dir / _DUMPED_RUN) as handle:
|
129
147
|
run = json.load(handle)
|
130
148
|
check_run(run)
|
131
|
-
_exit_success(run)
|
149
|
+
_exit_success(run, out_file)
|
132
150
|
except (
|
133
151
|
FileNotFoundError, json.decoder.JSONDecodeError,
|
134
152
|
InconsistentRunError):
|
@@ -147,13 +165,14 @@ async def dump_run(args):
|
|
147
165
|
|
148
166
|
sleeper = BackoffSleeper(jitter=random.random())
|
149
167
|
check_run = get_run_checker()
|
168
|
+
out_file = args.out_file if args.out_file else None
|
150
169
|
|
151
170
|
if args.retries:
|
152
171
|
for _ in range(args.retries):
|
153
|
-
_try_dump_run(cache_dir, pid, sleeper, check_run)
|
172
|
+
_try_dump_run(cache_dir, pid, sleeper, check_run, out_file)
|
154
173
|
else:
|
155
174
|
while True:
|
156
|
-
_try_dump_run(cache_dir, pid, sleeper, check_run)
|
175
|
+
_try_dump_run(cache_dir, pid, sleeper, check_run, out_file)
|
157
176
|
_exit_error()
|
158
177
|
|
159
178
|
|