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

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

इसमें कोड कवरेज डेटा कलेक्शन के मकसद से, --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 के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
स्ट्रक्ट पैरामीटर से टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब स्ट्रक्चर के सभी एलिमेंट (बार-बार) स्ट्रिंग, इंटेज, बूलियन, दूसरे स्ट्रक्चर या डिक्ट या इन टाइप की सूचियां हों. स्ट्रिंग में कोट और नई लाइनें छोड़ दी जाती हैं. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
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) का इस्तेमाल करें.