-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathprocess.os
128 lines (84 loc) · 5.07 KB
/
process.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Перем юТест;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_ПолучитьПутьКOscript");
ВсеТесты.Добавить("ТестДолжен_ПрочитатьВыводOscriptСразу");
ВсеТесты.Добавить("ТестДолжен_ПрочитатьВыводOscriptПострочно");
ВсеТесты.Добавить("ТестДолжен_ЗаписатьВоВходнойПотокПроцесса");
ВсеТесты.Добавить("ТестДолжен_НайтиПроцессПоИмени");
ВсеТесты.Добавить("ТестДолжен_НайтиПроцессПоPID");
Возврат ВсеТесты;
КонецФункции
Процедура ТестДолжен_ПолучитьПутьКOscript() Экспорт
Путь = Новый Файл(КаталогПрограммы() + "\oscript.exe");
юТест.ПроверитьИстину(Путь.Существует());
КонецПроцедуры
Процедура ТестДолжен_ПрочитатьВыводOscriptСразу() Экспорт
Путь = КаталогПрограммы() + "\oscript.exe";
Процесс = СоздатьПроцесс("""" + Путь + """",,Истина);
Процесс.Запустить();
Поток = Процесс.ПотокВывода;
Стр = НормализоватьПереводыСтрок(Поток.Прочитать());
юТест.ПроверитьРавенство(ШтатныйВыводOscript(), Стр);
КонецПроцедуры
Процедура ТестДолжен_ПрочитатьВыводOscriptПострочно() Экспорт
Путь = КаталогПрограммы() + "\oscript.exe";
Процесс = СоздатьПроцесс("""" + Путь + """",,Истина);
Процесс.Запустить();
Поток = Процесс.ПотокВывода;
Стр = "";
Пока Не Процесс.Завершен Цикл
Пока Поток.ЕстьДанные Цикл
Стр = Стр + Поток.ПрочитатьСтроку() + "
|";
КонецЦикла;
КонецЦикла;
юТест.ПроверитьРавенство(ШтатныйВыводOscript(), НормализоватьПереводыСтрок(Стр));
КонецПроцедуры
Процедура ТестДолжен_ЗаписатьВоВходнойПотокПроцесса() Экспорт
Процесс = СоздатьПроцесс("sort",,Истина, Истина);
Процесс.Запустить();
Процесс.ПотокВвода.ЗаписатьСтроку("2");
Процесс.ПотокВвода.ЗаписатьСтроку("1");
Процесс.ПотокВвода.ЗаписатьСтроку("3");
Процесс.ПотокВвода.Закрыть();
Вывод = Процесс.ПотокВывода.Прочитать();
Эталон = НормализоватьПереводыСтрок("1
|2
|3
|");
юТест.ПроверитьРавенство(Эталон, НормализоватьПереводыСтрок(Вывод));
КонецПроцедуры
Процедура ТестДолжен_НайтиПроцессПоИмени() Экспорт
МассивПроцессов = НайтиПроцессыПоИмени("oscript");
юТест.ПроверитьБольшеИлиРавно(МассивПроцессов.Количество(), 1);
КонецПроцедуры
Процедура ТестДолжен_НайтиПроцессПоPID() Экспорт
МассивПроцессов = НайтиПроцессыПоИмени("oscript");
ИД = МассивПроцессов[0].Идентификатор;
Процесс = НайтиПроцессПоИдентификатору(ИД);
юТест.ПроверитьРавенство(Процесс.Идентификатор, ИД);
КонецПроцедуры
Функция ШтатныйВыводOscript()
СИ = Новый СистемнаяИнформация;
Текст =
"1Script Execution Engine. Version " + СИ.Версия + "
|
|Usage:
|
|I. Script execution: oscript.exe <script_path> [script arguments..]
|
|II. Special mode: oscript.exe <mode> <script_path> [script arguments..]
|Mode can be one of these:
| -measure measures execution time
| -compile shows compiled module without execution
|
|III. Build standalone executable: oscript.exe -make <script_path> <output_exe>
|Builds a standalone executable module based on script specified
|";
Возврат НормализоватьПереводыСтрок(Текст);
КонецФункции
Функция НормализоватьПереводыСтрок(Знач ИсходнаяСтрока)
Возврат СтрЗаменить(ИсходнаяСтрока, Символы.ВК, "");
КонецФункции