इंस्ट्रूमेंट की गई फ़ाइलें

समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 .

इसमें कोड कवरेज डेटा कलेक्शन के मकसद से, --instrumentation_filter से मैच किए गए नियम के टारगेट की सोर्स फ़ाइलों और इंस्ट्रुमेंटेशन मेटाडेटा फ़ाइलों के बारे में जानकारी होती है. कवरेज डेटा इकट्ठा करने की सुविधा चालू होने पर, instrumented_files और metadata_files में मौजूद पाथ को मिलाकर बनाया गया मेनिफ़ेस्ट, टेस्ट ऐक्शन में इनपुट के तौर पर पास किया जाता है. साथ ही, एनवायरमेंट वैरिएबल COVERAGE_MANIFEST में मेनिफ़ेस्ट का पाथ नोट किया जाता है. मेटाडेटा फ़ाइलों को भी टेस्ट ऐक्शन में इनपुट के तौर पर पास किया जाता है, लेकिन सोर्स फ़ाइलों को नहीं. जब aspect के लागू करने वाले फ़ंक्शन से InstrumentedFilesInfo दिखाया जाता है, तो बेस नियम के टारगेट में मौजूद किसी भी InstrumentedFilesInfo को अनदेखा कर दिया जाता है.

सदस्य

instrumented_files

depset InstrumentedFilesInfo.instrumented_files

इस टारगेट और उसकी डिपेंडेंसी के लिए, इंस्ट्रूमेंट की गई सोर्स फ़ाइलों को दिखाने वाले File ऑब्जेक्ट के depset.

metadata_files

depset InstrumentedFilesInfo.metadata_files

File में से depset ऑब्जेक्ट, इस टारगेट और इसकी डिपेंडेंसी के लिए कवरेज मेटाडेटा फ़ाइलों को दिखाता है. इन फ़ाइलों में, कोड लागू होने के बाद LCOV फ़ॉर्मैट में कवरेज आउटपुट जनरेट करने के लिए ज़रूरी अतिरिक्त जानकारी होती है. जैसे, gcc को -ftest-coverage के साथ चलाने पर जनरेट हुई .gcno फ़ाइलें.

to_json

string InstrumentedFilesInfo.to_json()

अब काम नहीं करता. यह एपीआई अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
स्ट्रक्चर पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, इंटेस, बूलियन, अन्य स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग कुंजियों और इन टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में कोट और नई लाइनें छोड़ दी जाती हैं. उदाहरण:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

यह सुविधा अब काम नहीं करती: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. यह स्ट्रक्चर के अलावा, दूसरी वैल्यू पर भी काम करता है और स्ट्रक्चर फ़ील्ड नेमस्पेस को खराब नहीं करता.

to_proto

string InstrumentedFilesInfo.to_proto()

अब काम नहीं करता. यह एपीआई अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है.
स्ट्रक्ट पैरामीटर से टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, ints, बूलियन, दूसरे स्ट्रक्चर या dicts या इस तरह की सूचियां हों. स्ट्रिंग में कोट और नई लाइनें छोड़ दी जाती हैं. स्ट्रक्चर की कुंजियों को क्रम से लगाया जाता है. उदाहरण:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.