यह कमांड टेश है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
टेश - परीक्षण खोल
SYNOPSIS
Tesh [विकल्प]...[फ़ाइल] ...
वर्णन
यह TESH टूल है। यह एक परीक्षण शेल का गठन करता है, अर्थात एक प्रकार का शेल जिसे विशिष्ट किया जाता है
परीक्षण चलाएं। की जाने वाली कार्रवाइयों की सूची को टेस्टसुइट नामक फाइल फाइलों से पार्स किया जाता है।
विकल्प
--cd some/directory : tesh को कार्यशील निर्देशिका को पहले स्विच करने के लिए कहें
परीक्षण शुरू करना
--setenv var=value : एक विशिष्ट पर्यावरण चर सेट करें
--cfg arg : प्रत्येक कमांड लाइन में पैरामीटर --cfg=arg जोड़ें
--enable-कवरेज: "प्रोफाइलिंग:" से शुरू होने वाली आउटपुट लाइनों को अनदेखा करें
टेशो फ़ाइल वाक्य - विन्यास
यहाँ इन फ़ाइलों का सिंटैक्स है:
प्रत्येक पंक्ति का प्रकार पहले चार द्वारा दिया गया है (दूसरा चार खाली होना चाहिए और है
अवहेलना करना):
`$' कमांड अग्रभूमि में चलाने के लिए
पृष्ठभूमि में चलने के लिए `&' आदेश
`<' कमांड को पास करने के लिए इनपुट
`>' कमांड से अपेक्षित आउटपुट
`!' मेटाकमांड, जो इनमें से एक हो सकता है:
'समयबाह्य' |नहीं
'उम्मीद संकेत'
'वापसी की उम्मीद'
'उत्पादन'
`सेटेंव = '
`पी' मुद्रित करने के लिए एक स्ट्रिंग
'P' एक स्ट्रिंग जिसे क्रिटिकल स्तर पर प्रिंट किया जाना है (लॉगिंग को आसान बनाना)
यदि अपेक्षित आउटपुट कमांड के थूकने से मेल नहीं खाता है, तो TESH एक त्रुटि उत्पन्न करेगा
अंतर दिखा रहा है (नीचे OUTPUT देखें)।
IO आदेश
< और > लाइनें वर्तमान ब्लॉक में परिभाषित कमांड में आईओ जोड़ती हैं (ब्लॉक अलग हो जाते हैं
रिक्त पंक्तियों द्वारा)। इन पंक्तियों को या तो कमांड के बाद या पहले रखना संभव है।
निम्नलिखित दो टुकड़ों के बीच का अंतर मुख्य रूप से आपके टेस्टसूट में कॉस्मेटिक है,
TESH परवाह नहीं है। (cf IO-orders.tesh)
$ बिल्ली
< पूर्ण
> पूर्ण
> पूर्ण
$ बिल्ली
< पूर्ण
फिर भी, एक ही ब्लॉक में कई कमांड होना संभव है, लेकिन उनमें से कोई भी नहीं
कोई आउटपुट हो सकता है। यह थोड़ा प्रतिबंधात्मक लग सकता है, जैसा कि कोई कह सकता है कि एक आदेश मिलता है
अगले आदेश तक सभी आईओ, लेकिन मुझे निम्न जैसी त्रुटियों से डर लगता है:
$ सीडी टोटो
> पूर्ण
$ एमकेफ़ाइल फ़ाइल
TOTO को cd कमांड में पास किया जाएगा, जहां उपयोगकर्ता स्पष्ट रूप से इसे पास करना चाहता है
mkfile बिल्ट-इन कमांड (नीचे देखें)।
धारा पुनर्निर्देशन
स्ट्रीम पुनर्निर्देशन (">", "<" और "|" निर्माण श में) अभी तक टेश में लागू नहीं किए गए हैं।
यह थोड़ा प्रतिबंधात्मक है, लेकिन ठीक है, पैच स्वागत है ...
जिस स्थिति में यह मुख्य रूप से समस्याग्रस्त है वह एक अस्थायी फ़ाइल बनाना है। NS
समाधान "mkfile" बिल्ट-इन कमांड का उपयोग करना है, जैसा कि निम्न उदाहरण में है: $mkfile
myFile > कुछ सामग्री > फ़ाइल में
यह myFile (mkfile कमांड का पहला तर्क) नामक एक फ़ाइल बनाएगा। इसकी सामग्री
कमांड को प्रदान किए गए सभी इनपुट होंगे।
वापसी कोड
जब बच्चा 0 को रिटर्न कोड के रूप में वापस नहीं करता है, तो TESH एक उपयुक्त त्रुटि संदेश देता है (cf.
कैच-रिटर्न.टेश), और कोड+40 ही लौटाता है।
यह निर्दिष्ट करना भी संभव है कि किसी दिए गए आदेश को एक और मान वापस करना होगा। इसके लिए,
"उम्मीद वापसी" मेटाकॉमैंड का उपयोग करें, जो तर्क के रूप में एक पूर्णांक लेता है। केवल परिवर्तन
अगले आदेश पर लागू करें (cf. set-return.tesh)।
सिग्नल
TESH यह पता लगाता है कि जब बच्चा सिग्नल से मारा जाता है (जैसे segfaults पर), और थूकता है a
उपयुक्त त्रुटि संदेश (cf. catch-signal.tesh)।
यह निर्दिष्ट करना भी संभव है कि किसी दिए गए आदेश को दिए गए सिग्नल को उठाना चाहिए। इसके लिए,
"उम्मीद संकेत" मेटाकमांड का उपयोग करें। यह सिग्नल नाम को तर्क के रूप में लेता है। केवल परिवर्तन
अगले आदेश पर लागू करें (cf. set-signal.tesh)।
समय समाप्ति
डिफ़ॉल्ट रूप से, सभी कमांड को निष्पादित करने के लिए 5 सेकंड दिए जाते हैं (cf. catch-timeout.tesh)। आप ऐसा कर सकते हैं
इसे "टाइमआउट" के साथ बदलें, जो तर्क के रूप में एक पूर्णांक लेता है। परिवर्तन केवल लागू होता है
अगले आदेश के लिए (cf. set-timeout.tesh)। यदि आप तर्क के रूप में "नहीं" पास करते हैं, तो कमांड
समय समाप्त नहीं हो सकता।
आउटपुट
डिफ़ॉल्ट रूप से, कमांड आउटपुट का मिलान अपेक्षित के विरुद्ध किया जाता है, और एक त्रुटि है
विसंगति पर उठाया। इसे बदलने के लिए मेटाकमांड:
"आउटपुट पर ध्यान न दें" -> आउटपुट को पूरी तरह से खारिज कर दिया गया
"आउटपुट डिस्प्ले" -> आउटपुट प्रदर्शित (लेकिन सत्यापित नहीं)
"आउटपुट सॉर्ट" -> इसे सत्यापित करने से पहले डिस्प्ले को सॉर्ट करता है (नीचे देखें)
छँटाई आउटपुट
आउटपुट को सॉर्ट करना एक अजीब विचार प्रतीत होता है, लेकिन सिमग्रिड में यह अनिवार्य है क्योंकि
किसी भी समय-निर्धारण बिंदु पर प्रक्रियाएं क्रम से बाहर हो जाती हैं (अर्थात, प्रत्येक प्रक्रिया पर चलने के लिए तैयार)
सिम्युलेटेड टाइम टी समानांतर में चलता है)। यह सुनिश्चित करने के लिए कि सिम्युलेटर आउटपुट अभी भी मेल खाते हैं, हम
तुलना करने से पहले आउटपुट को वापस सॉर्ट करना होगा।
हम उम्मीद करते हैं कि सिमुलेटर उस लॉग स्वरूपण तर्क के साथ चलेंगे:
--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n फिर, टेश 19 पहले वर्णों पर स्ट्रिंग को सॉर्ट करता है
केवल, और स्थिर होता है जब रेखा की शुरुआत बराबर होती है। यह सुनिश्चित करना चाहिए कि:
(1) टेश प्रभावी है (कोई झूठा सकारात्मक नहीं, कोई झूठा नकारात्मक नहीं)
(2) शेड्यूलिंग पॉइंट एक दूसरे से अलग होते हैं
(3) प्रत्येक समयबद्धन बिंदु पर, प्रक्रियाओं को एक दूसरे से अलग किया जाता है
(4) किसी दिए गए शेड्यूलिंग पर दी गई प्रक्रिया क्या कहती है, इसका क्रम
बिंदु संरक्षित है।
यह निश्चित रूप से बहुत सिमग्रिड उन्मुख है, टेश की व्यापकता को तोड़ रहा है, लेकिन कौन परवाह करता है,
असल में?
यदि आप सॉर्ट के लिए प्रयुक्त उपसर्ग की लंबाई बदलना चाहते हैं, तो बस इसे बाद में निर्दिष्ट करें
आउटपुट सॉर्ट निर्देश, इस तरह:
! आउटपुट सॉर्ट 22
वातावरण
आप सेटेनव मेटाकमांड के साथ परीक्षण की गई प्रक्रियाओं के वातावरण में कुछ सामग्री जोड़ सकते हैं।
यह अपेक्षा के अनुरूप काम करता है। उदाहरण के लिए:
"सेटेंव पथ =/ bin"
onworks.net सेवाओं का उपयोग करके ऑनलाइन टेश का उपयोग करें
