Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include "barretenberg/client_ivc/client_ivc.hpp"
#include "barretenberg/api/exec_pipe.hpp"
#include "barretenberg/circuit_checker/circuit_checker.hpp"
#include "barretenberg/client_ivc/private_execution_steps.hpp"
#include "barretenberg/common/streams.hpp"
#include "barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp"
#include "barretenberg/dsl/acir_format/pg_recursion_constraint.hpp"
#include "barretenberg/honk/proving_key_inspector.hpp"
#include <filesystem>
#include <gtest/gtest.h>
Go to the source code of this file.
Classes | |
class | AcirIntegrationTest |
class | AcirIntegrationSingleTest |
class | AcirIntegrationFoldingTest |
Functions | |
TEST_P (AcirIntegrationSingleTest, DISABLED_ProveAndVerifyProgram) | |
INSTANTIATE_TEST_SUITE_P (AcirTests, AcirIntegrationSingleTest, testing::Values("a_1327_concrete_in_generic", "a_1_mul", "a_2_div", "a_3_add", "a_4_sub", "a_5_over", "a_6", "a_6_array", "a_7", "a_7_function", "aes128_encrypt", "arithmetic_binary_operations", "array_dynamic", "array_dynamic_blackbox_input", "array_dynamic_main_output", "array_dynamic_nested_blackbox_input", "array_eq", "array_if_cond_simple", "array_len", "array_neq", "array_sort", "array_to_slice", "array_to_slice_constant_length", "assert", "assert_statement", "assign_ex", "bigint", "bit_and", "bit_not", "bit_shifts_comptime", "bit_shifts_runtime", "blake3", "bool_not", "bool_or", "break_and_continue", "brillig_acir_as_brillig", "brillig_array_eq", "brillig_array_to_slice", "brillig_arrays", "brillig_assert", "brillig_bit_shifts_runtime", "brillig_blake2s", "brillig_blake3", "brillig_calls", "brillig_calls_array", "brillig_calls_conditionals", "brillig_conditional", "brillig_cow", "brillig_cow_assign", "brillig_cow_regression", "brillig_ecdsa_secp256k1", "brillig_ecdsa_secp256r1", "brillig_embedded_curve", "brillig_fns_as_values", "brillig_hash_to_field", "brillig_identity_function", "brillig_keccak", "brillig_loop", "brillig_nested_arrays", "brillig_not", "brillig_oracle", "brillig_pedersen", "brillig_recursion", "brillig_references", "brillig_schnorr", "brillig_sha256", "brillig_signed_cmp", "brillig_signed_div", "brillig_slices", "brillig_to_be_bytes", "brillig_to_bits", "brillig_to_bytes_integration", "brillig_to_le_bytes", "brillig_top_level", "brillig_uninitialized_arrays", "brillig_wrapping", "cast_bool", "closures_mut_ref", "conditional_1", "conditional_2", "conditional_regression_421", "conditional_regression_547", "conditional_regression_661", "conditional_regression_short_circuit", "conditional_regression_underflow", "custom_entry", "databus", "debug_logs", "diamond_deps_0", "double_verify_nested_proof", "double_verify_proof", "ecdsa_secp256k1", "ecdsa_secp256r1", "ecdsa_secp256r1_3x", "eddsa", "embedded_curve_ops", "field_attribute", "generics", "global_consts", "hash_to_field", "hashmap", "higher_order_functions", "if_else_chain", "import", "inline_never_basic", "integer_array_indexing", "keccak256", "main_bool_arg", "main_return", "merkle_insert", "missing_closure_env", "modules", "modules_more", "modulus", "nested_array_dynamic", "nested_array_dynamic_simple", "nested_array_in_slice", "nested_arrays_from_brillig", "no_predicates_basic", "no_predicates_brillig", "no_predicates_numeric_generic_poseidon", "operator_overloading", "pedersen_check", "pedersen_commitment", "pedersen_hash", "poseidon_bn254_hash", "poseidonsponge_x5_254", "pred_eq", "prelude", "references", "regression", "regression_2660", "regression_3051", "regression_3394", "regression_3607", "regression_3889", "regression_4088", "regression_4124", "regression_4202", "regression_4449", "regression_4709", "regression_5045", "regression_capacity_tracker", "regression_mem_op_predicate", "regression_method_cannot_be_found", "regression_struct_array_conditional", "schnorr", "sha256", "sha2_byte", "side_effects_constrain_array", "signed_arithmetic", "signed_comparison", "signed_division", "simple_2d_array", "simple_add_and_ret_arr", "simple_array_param", "simple_bitwise", "simple_comparison", "simple_mut", "simple_not", "simple_print", "simple_program_addition", "simple_radix", "simple_shield", "simple_shift_left_right", "slice_coercion", "slice_dynamic_index", "slice_loop", "slices", "strings", "struct", "struct_array_inputs", "struct_fields_ordering", "struct_inputs", "submodules", "to_be_bytes", "to_bytes_consistent", "to_bytes_integration", "to_le_bytes", "trait_as_return_type", "trait_impl_base_type", "traits_in_crates_1", "traits_in_crates_2", "tuple_inputs", "tuples", "type_aliases", "u128", "u16_support", "unconstrained_empty", "unit_value", "unsafe_range_constraint", "witness_compression", "xor")) | |
TEST_P (AcirIntegrationFoldingTest, DISABLED_ProveAndVerifyProgramStack) | |
INSTANTIATE_TEST_SUITE_P (AcirTests, AcirIntegrationFoldingTest, testing::Values("fold_basic", "fold_basic_nested_call")) | |
TEST_F (AcirIntegrationTest, DISABLED_Databus) | |
A basic test of a circuit generated in noir that makes use of the databus. | |
TEST_F (AcirIntegrationTest, DISABLED_DatabusTwoCalldata) | |
Test a program that uses two databus calldata columns. | |
TEST_F (AcirIntegrationTest, DISABLED_UpdateAcirCircuit) | |
Ensure that adding gates post-facto to a circuit generated from acir still results in a valid circuit. | |
TEST_F (AcirIntegrationTest, DISABLED_HonkRecursion) | |
Test recursive honk recursive verification. | |
TEST_F (AcirIntegrationTest, DISABLED_ClientIVCMsgpackInputs) | |
Test ClientIVC proof generation and verification given an ivc-inputs msgpack file. | |
TEST_F (AcirIntegrationTest, DISABLED_DummyWitnessVkConsistency) | |
Check that for a set of programs to be accumulated via CIVC, the verification keys computed with a dummy witness are identical to those computed with the genuine provided witness. | |
INSTANTIATE_TEST_SUITE_P | ( | AcirTests | , |
AcirIntegrationFoldingTest | , | ||
testing::Values("fold_basic", "fold_basic_nested_call") | |||
) |
INSTANTIATE_TEST_SUITE_P | ( | AcirTests | , |
AcirIntegrationSingleTest | , | ||
testing::Values("a_1327_concrete_in_generic", "a_1_mul", "a_2_div", "a_3_add", "a_4_sub", "a_5_over", "a_6", "a_6_array", "a_7", "a_7_function", "aes128_encrypt", "arithmetic_binary_operations", "array_dynamic", "array_dynamic_blackbox_input", "array_dynamic_main_output", "array_dynamic_nested_blackbox_input", "array_eq", "array_if_cond_simple", "array_len", "array_neq", "array_sort", "array_to_slice", "array_to_slice_constant_length", "assert", "assert_statement", "assign_ex", "bigint", "bit_and", "bit_not", "bit_shifts_comptime", "bit_shifts_runtime", "blake3", "bool_not", "bool_or", "break_and_continue", "brillig_acir_as_brillig", "brillig_array_eq", "brillig_array_to_slice", "brillig_arrays", "brillig_assert", "brillig_bit_shifts_runtime", "brillig_blake2s", "brillig_blake3", "brillig_calls", "brillig_calls_array", "brillig_calls_conditionals", "brillig_conditional", "brillig_cow", "brillig_cow_assign", "brillig_cow_regression", "brillig_ecdsa_secp256k1", "brillig_ecdsa_secp256r1", "brillig_embedded_curve", "brillig_fns_as_values", "brillig_hash_to_field", "brillig_identity_function", "brillig_keccak", "brillig_loop", "brillig_nested_arrays", "brillig_not", "brillig_oracle", "brillig_pedersen", "brillig_recursion", "brillig_references", "brillig_schnorr", "brillig_sha256", "brillig_signed_cmp", "brillig_signed_div", "brillig_slices", "brillig_to_be_bytes", "brillig_to_bits", "brillig_to_bytes_integration", "brillig_to_le_bytes", "brillig_top_level", "brillig_uninitialized_arrays", "brillig_wrapping", "cast_bool", "closures_mut_ref", "conditional_1", "conditional_2", "conditional_regression_421", "conditional_regression_547", "conditional_regression_661", "conditional_regression_short_circuit", "conditional_regression_underflow", "custom_entry", "databus", "debug_logs", "diamond_deps_0", "double_verify_nested_proof", "double_verify_proof", "ecdsa_secp256k1", "ecdsa_secp256r1", "ecdsa_secp256r1_3x", "eddsa", "embedded_curve_ops", "field_attribute", "generics", "global_consts", "hash_to_field", "hashmap", "higher_order_functions", "if_else_chain", "import", "inline_never_basic", "integer_array_indexing", "keccak256", "main_bool_arg", "main_return", "merkle_insert", "missing_closure_env", "modules", "modules_more", "modulus", "nested_array_dynamic", "nested_array_dynamic_simple", "nested_array_in_slice", "nested_arrays_from_brillig", "no_predicates_basic", "no_predicates_brillig", "no_predicates_numeric_generic_poseidon", "operator_overloading", "pedersen_check", "pedersen_commitment", "pedersen_hash", "poseidon_bn254_hash", "poseidonsponge_x5_254", "pred_eq", "prelude", "references", "regression", "regression_2660", "regression_3051", "regression_3394", "regression_3607", "regression_3889", "regression_4088", "regression_4124", "regression_4202", "regression_4449", "regression_4709", "regression_5045", "regression_capacity_tracker", "regression_mem_op_predicate", "regression_method_cannot_be_found", "regression_struct_array_conditional", "schnorr", "sha256", "sha2_byte", "side_effects_constrain_array", "signed_arithmetic", "signed_comparison", "signed_division", "simple_2d_array", "simple_add_and_ret_arr", "simple_array_param", "simple_bitwise", "simple_comparison", "simple_mut", "simple_not", "simple_print", "simple_program_addition", "simple_radix", "simple_shield", "simple_shift_left_right", "slice_coercion", "slice_dynamic_index", "slice_loop", "slices", "strings", "struct", "struct_array_inputs", "struct_fields_ordering", "struct_inputs", "submodules", "to_be_bytes", "to_bytes_consistent", "to_bytes_integration", "to_le_bytes", "trait_as_return_type", "trait_impl_base_type", "traits_in_crates_1", "traits_in_crates_2", "tuple_inputs", "tuples", "type_aliases", "u128", "u16_support", "unconstrained_empty", "unit_value", "unsafe_range_constraint", "witness_compression", "xor") | |||
) |
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_ClientIVCMsgpackInputs | |||
) |
Test ClientIVC proof generation and verification given an ivc-inputs msgpack file.
Definition at line 499 of file acir_integration.test.cpp.
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_Databus | |||
) |
A basic test of a circuit generated in noir that makes use of the databus.
Definition at line 369 of file acir_integration.test.cpp.
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_DatabusTwoCalldata | |||
) |
Test a program that uses two databus calldata columns.
In addition to checking that a proof of the resulting circuit verfies, check that the specific structure of the calldata/return data interaction in the noir program is reflected in the bberg circuit
Definition at line 393 of file acir_integration.test.cpp.
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_DummyWitnessVkConsistency | |||
) |
Check that for a set of programs to be accumulated via CIVC, the verification keys computed with a dummy witness are identical to those computed with the genuine provided witness.
Definition at line 521 of file acir_integration.test.cpp.
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_HonkRecursion | |||
) |
Test recursive honk recursive verification.
Definition at line 480 of file acir_integration.test.cpp.
TEST_F | ( | AcirIntegrationTest | , |
DISABLED_UpdateAcirCircuit | |||
) |
Ensure that adding gates post-facto to a circuit generated from acir still results in a valid circuit.
This is a pattern required by e.g. ClientIvc which appends recursive verifiers to acir-generated circuits
Definition at line 446 of file acir_integration.test.cpp.
TEST_P | ( | AcirIntegrationFoldingTest | , |
DISABLED_ProveAndVerifyProgramStack | |||
) |
Definition at line 338 of file acir_integration.test.cpp.
TEST_P | ( | AcirIntegrationSingleTest | , |
DISABLED_ProveAndVerifyProgram | |||
) |
Definition at line 123 of file acir_integration.test.cpp.