Opened 5 years ago

Closed 5 years ago

#147 closed ожидается проверка (задача сдана)

WW #2

Reported by: Solovyev Gleb Owned by: Sokolov Viacheslav
Component: WW_strings Version: 3.0
Keywords: Cc:

Description


Change History (7)

comment:1 Changed 5 years ago by Sokolov Viacheslav

Type: ожидается проверкаожидаются исправления

lab2: src/test_str.c:43: test_strcmp: Assertion `strcmp(str1, str2) == my_strcmp(str1, str2)' failed.

Стоит добавить зависимости .o файлов от (необходимых) .h файлов.

Использование знаковых переменных для индексации по массиву приводит к тому, что соответствующие функции не будут работать на очень длинных строчках.

Тесты должны проверять не реализацию, а заявленное поведение. В частности, в тестах стоит проверять соответствие возвращаемых значений функций тому, что описано в Стандарте. В случае strcmp не гарантируется, что именно функция вернет.

comment:2 Changed 5 years ago by Solovyev Gleb

Type: ожидаются исправленияожидается проверка

Зависимости от необходимых заголовочных файлов добавил.

Знаковые переменные индексации заменил на беззнаковые.

Ошибку с strcmp учел, теперь проверяю непосредственно знак., т. е. заявленное поведение.
Понимаю, что все тесты можно заменить на вид assert(my_strcmp("abc","abc")==0), т. е. сравнивать с обещанным результатом, но сейчас они это и делают, только в более удобной реализации (можно добавить произвольный тест вообще не анализируя его глазами).

comment:3 Changed 5 years ago by Sokolov Viacheslav

Для strcpy тоже описано, что именно функция должна вернуть, но в тестах не проверяется.

comment:4 Changed 5 years ago by Solovyev Gleb

Version: 2.03.0

Все, добавил проверку равенства указателей в strcmp и в strcat. Теперь все заявленное поведение проверяется.

comment:5 Changed 5 years ago by Sokolov Viacheslav

Type: ожидается проверкаожидаются исправления

В тестовых функциях лишние аллокации, много кода, который не влияет на корректность.
Смешаны стили snake_case и camelCase.
Английский в комментариях не совсем корректный. Можно проверять себя с помощью разных инструментов, например, grammarly (конкретно этот инструмент не совсем бесплатный).
В str.c не хватает #include "str.h"
Нет проверки предусловий, желательно добавить assert-ы на соблюдение контрактов функций (ненулевые указатели).

comment:6 Changed 5 years ago by Solovyev Gleb

Type: ожидаются исправленияожидается проверка

Все Ваши замечания учтены.

comment:7 Changed 5 years ago by Sokolov Viacheslav

Resolution: задача сдана
Status: assignedclosed
Note: See TracTickets for help on using tickets.