1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14module: 15 name: verifier 16 namespace: panda::verifier 17 18options: 19- name: boot-panda-files 20 type: arg_list_t 21 default: 22 - $ORIGIN/../pandastdlib/arkstdlib.abc 23 description: Boot panda files separated by colon 24 delimiter: ":" 25 26- name: panda-files 27 type: arg_list_t 28 default: [] 29 description: Panda files separated by colon which is not within boot-panda-files 30 delimiter: ":" 31 32- name: classes 33 type: arg_list_t 34 default: [] 35 description: Fully qualified class names to verify 36 delimiter: "," 37 38- name: methods 39 type: arg_list_t 40 default: [] 41 # TODO(romanov) describe how to specify signatures for specific overloads? 42 description: >- 43 Fully qualified method names to verify (if neither this nor classes are set, all classes will be verified) 44 delimiter: "," 45 46- name: load-runtimes 47 type: arg_list_t 48 default: 49 - core 50 possible_values: 51 - core 52 - java 53 # currently unsupported and not planned 54 # - ecmascript 55 description: Load specified class and intrinsic spaces and define runtime type 56 delimiter: ":" 57 58- name: log-components 59 type: arg_list_t 60 default: 61 - all 62 possible_values: 63 - all 64 - alloc 65 - common 66 - pandafile 67 - memorypool 68 - verifier 69 - runtime 70 # TODO(romanov) remove after #5987 (but keep runtime) 71 - classlinker 72 description: Enable logs from specified components 73 delimiter: ":" 74 75- name: log-level 76 type: std::string 77 default: error 78 possible_values: 79 - debug 80 - info 81 - warning 82 - error 83 - fatal 84 description: Log level 85 86- name: log-stream 87 type: std::string 88 default: std 89 possible_values: 90 - std 91 - file 92 - dummy 93 description: Log level 94 95- name: log-file 96 type: std::string 97 default: "" 98 description: File name for file-logger 99 100- name: limit-standard-alloc 101 type: bool 102 default: false 103 description: Limit standard allocations usage in runtime 104 105- name: internal-allocator-type 106 type: std::string 107 default: default 108 possible_values: 109 - panda_allocators 110 - malloc 111 - default 112 description: >- 113 Default means using malloc for Release, and panda allocators for Debug builds. If we use malloc, we will ignore 114 limit-standard-alloc option. 115 116- name: internal-memory-size-limit 117 type: uint64_t 118 default: 2147483648 119 description: Max internal memory used by the VM 120 121- name: print-memory-statistics 122 type: bool 123 default: false 124 description: Enable/disable printing memory statistics in the end of the program 125 126- name: debug-mode 127 type: bool 128 default: false 129 description: Whether to enable debug mode 130 131- name: update-cache 132 type: bool 133 default: true 134 description: Whether to update verification result cache 135 136- name: verify-runtime-libraries 137 type: bool 138 default: false 139 description: Whether to verify system files 140 141- name: threads 142 type: uint32_t 143 default: 0 144 description: Number of verification threads. Use 0 for the system-specific default, usually 1 thread per core 145 146- name: config-file 147 type: std::string 148 default: "default" 149 description: Verifier config file 150 151- name: cache-file 152 type: std::string 153 default: "" 154 description: Verification result cache filename (should be set if update-cache is true) 155