| 670 | } |
| 671 | |
| 672 | static std::pair<int, int> test_handcrafted_file(const unsigned int seed) { |
| 673 | int npass = 0; |
| 674 | int ntest = 0; |
| 675 | |
| 676 | const std::vector<handcrafted_file_type> hfts = { |
| 677 | HANDCRAFTED_HEADER_BAD_MAGIC, |
| 678 | HANDCRAFTED_HEADER_BAD_VERSION_0, |
| 679 | HANDCRAFTED_HEADER_BAD_VERSION_1, |
| 680 | HANDCRAFTED_HEADER_BAD_VERSION_FUTURE, |
| 681 | HANDCRAFTED_HEADER_BAD_N_KV, |
| 682 | HANDCRAFTED_HEADER_BAD_N_TENSORS, |
| 683 | HANDCRAFTED_HEADER_EMPTY, |
| 684 | |
| 685 | HANDCRAFTED_KV_BAD_KEY_SIZE, |
| 686 | HANDCRAFTED_KV_BAD_TYPE, |
| 687 | HANDCRAFTED_KV_DUPLICATE_KEY, |
| 688 | HANDCRAFTED_KV_BAD_ALIGN, |
| 689 | HANDCRAFTED_KV_SUCCESS, |
| 690 | |
| 691 | HANDCRAFTED_TENSORS_BAD_NAME_SIZE, |
| 692 | HANDCRAFTED_TENSORS_BAD_N_DIMS, |
| 693 | HANDCRAFTED_TENSORS_BAD_SHAPE, |
| 694 | HANDCRAFTED_TENSORS_NE_TOO_BIG, |
| 695 | HANDCRAFTED_TENSORS_NBYTES_TOO_BIG, |
| 696 | HANDCRAFTED_TENSORS_BAD_TYPE, |
| 697 | HANDCRAFTED_TENSORS_BAD_OFFSET, |
| 698 | HANDCRAFTED_TENSORS_DUPLICATE_NAME, |
| 699 | HANDCRAFTED_TENSORS_BAD_ALIGN, |
| 700 | HANDCRAFTED_TENSORS_INCONSISTENT_ALIGN, |
| 701 | HANDCRAFTED_TENSORS_SUCCESS, |
| 702 | HANDCRAFTED_TENSORS_CUSTOM_ALIGN, |
| 703 | |
| 704 | HANDCRAFTED_DATA_NOT_ENOUGH_DATA, |
| 705 | HANDCRAFTED_DATA_BAD_ALIGN, |
| 706 | HANDCRAFTED_DATA_INCONSISTENT_ALIGN, |
| 707 | HANDCRAFTED_DATA_SUCCESS, |
| 708 | HANDCRAFTED_DATA_CUSTOM_ALIGN, |
| 709 | }; |
| 710 | |
| 711 | for (enum handcrafted_file_type hft : hfts) { |
| 712 | printf("%s: handcrafted_file_type=%s\n", __func__, handcrafted_file_type_name(hft).c_str()); |
| 713 | FILE * file = get_handcrafted_file(seed, hft); |
| 714 | |
| 715 | #ifdef _WIN32 |
| 716 | if (!file) { |
| 717 | printf("failed to create tmpfile(), needs elevated privileges on Windows"); |
| 718 | printf("skipping tests"); |
| 719 | continue; |
| 720 | } |
| 721 | #else |
| 722 | GGML_ASSERT(file); |
| 723 | #endif // _WIN32 |
| 724 | |
| 725 | struct ggml_context * ctx = nullptr; |
| 726 | struct gguf_init_params gguf_params = { |
| 727 | /*no_alloc =*/ false, |
| 728 | /*ctx =*/ hft >= offset_has_data ? &ctx : nullptr, |
| 729 | }; |
no test coverage detected