Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi
3) Тестирование процедуры считывающей блок параметров Bios - событие «С2» (происходит при нажатии на кнопку «Считать BPB»)логического диска
дескриптор которого был создан в процедуре обрабатывающей событие «С1» при нажатии на кнопку «Начать работу с диском»
1инициализация
2IfReadSectors(hDrive,0,1,@buffer,DiscGeometry.BytesPerSector) = DiscGeometry.BytesPerSector then
begin
3for i:= 1 to 16 do
4Grid1.Cells[i,0]:=intToHex((i-1),1);
5i:=1; j:=1; k:=1;
6while k<=DiscGeometry.BytesPerSector do
begin
7 if i=1 then
8 Grid1.Cells[0,j]:=IntToHex(((j-1)*16+(i-1)),3);
9 Grid1.Cells[i,j]:=IntToHex(Buffer[k],2);
inc(k);
inc(i);
10 if i>16 then
begin
11 i:=1;
j:=j+1;
Grid1.RowCount:= Grid1.RowCount+1;
12end;
13end;
14{линейный блок расшифровки данных BPB}
end
else
15ShowMessage(‘не удалось считать BPB’);
16end
17end;
программа многопоточный приложение служебный
Рисунок 4.3 – Потоковый граф обработчика события С2 (Считывание блока параметров Bios).
Цикломатическая сложность потокового графа:
1) V(G) = 6 регионов;
2) V(G) = 21дуг - 17 узлов + 2 = 6;
3) V(G) = 5 предикатных узлов +1 = 6.
Путь 1:1-2-15-16-17;
Путь 2:1-2-3-4-5-6-7-9-10-12-13-14-17.
Путь 3: 1-2-3-4-5-6-7-8-9-10-12-13-14-16-17.
Путь 4:1-2-3-4-5-6-7-9-10-11-12-13-14-16-17.
Путь 5:1-2-3-4-5-6-7-8-9-10-11-12-13-14-16-17.
Путь 6: 1-2-3-4-3-4-5-6-7-9-10-12-13-6-7-8-9-10-11-12-13-14-16-17.
№ пути |
Исходные данные | Ожидаемые результаты | Реальные результаты |
1 | Не удалось считать сектор BPB . | Вывод сообщения о том, что считать BPB не удалось | Вывод сообщения: « не удалось считать BPB» |
2 | Часть данных считана , при этом номер строки остаётся прежним и номер элемента строки не достиг 16. | Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» | Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h» |
3 | Чтение данных началось и строка получила значение | Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» | Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h» |
4 | Строка считана и номер элемента в строке достиг 16 | Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» | Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h» |
5 | Строка получила номер и элемент в строке достиг 16 | Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» | Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h» |
6 | Чтение данных из буфера в течении нескольких проходов циклов с изменением номера строк и столбцов таблицы , содержащей значения BPB | Пошаговый вывод данных в таблицу содержащую 16рмчные значения и вывод данных в таблицу содержащую расшифрованные значения | Обе таблицы «Шестнадцатиричное представление BPB логического диска» и «Расшифровка блока параметров BIOS» заполняются необходимыми значениями |
4) Тестирование процедуры, считывающей таблицу разделов носителя(событие «С3» - происходит при нажатии на кнопку «Считать Partition Table»), к которому принадлежит ,выбранный из выпадающего списка логический диск
1инициализация.
2Memo2.Clear;
3If.ReadSectors(hMBRDrive,0,1,@buffer,DiscGeometry.BytesPerSector)= DiscGeometry.BytesPerSector then
begin
4for i:= 1 to 16 do
5Grid2.Cells[i,0]:=intToHex((i-1),1);
6i:=1; j:=1; k:=1;
7while k<=DiscGeometry.BytesPerSector do
begin
8if i=1 then
9Grid2.Cells[0,j]:=IntToHex(((j-1)*16+(i-1)),3);
10Grid2.Cells[i,j]:=IntToHex(Buffer[k],2);
inc(k);
inc(i);
11if i>16 then
begin
12 i:=1;
j:=j+1;
Grid2.RowCount:= Grid2.RowCount+1;
13 end;
14end;
begin
15{Линейный блок расшифровки значений полученных в буфере после чтения сектора}
16end
else
17ShowMessage('Не удалось считать блок PartitionTable');
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11