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
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Зависимости от необходимых заголовочных файлов добавил.
Знаковые переменные индексации заменил на беззнаковые.
Ошибку с strcmp учел, теперь проверяю непосредственно знак., т. е. заявленное поведение.
Понимаю, что все тесты можно заменить на вид assert(my_strcmp("abc","abc")==0), т. е. сравнивать с обещанным результатом, но сейчас они это и делают, только в более удобной реализации (можно добавить произвольный тест вообще не анализируя его глазами).
comment:3 Changed 5 years ago by
Для strcpy тоже описано, что именно функция должна вернуть, но в тестах не проверяется.
comment:4 Changed 5 years ago by
Version: | 2.0 → 3.0 |
---|
Все, добавил проверку равенства указателей в strcmp и в strcat. Теперь все заявленное поведение проверяется.
comment:5 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
В тестовых функциях лишние аллокации, много кода, который не влияет на корректность.
Смешаны стили snake_case и camelCase.
Английский в комментариях не совсем корректный. Можно проверять себя с помощью разных инструментов, например, grammarly (конкретно этот инструмент не совсем бесплатный).
В str.c не хватает #include "str.h"
Нет проверки предусловий, желательно добавить assert-ы на соблюдение контрактов функций (ненулевые указатели).
comment:6 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Все Ваши замечания учтены.
comment:7 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
lab2: src/test_str.c:43: test_strcmp: Assertion `strcmp(str1, str2) == my_strcmp(str1, str2)' failed.
Стоит добавить зависимости .o файлов от (необходимых) .h файлов.
Использование знаковых переменных для индексации по массиву приводит к тому, что соответствующие функции не будут работать на очень длинных строчках.
Тесты должны проверять не реализацию, а заявленное поведение. В частности, в тестах стоит проверять соответствие возвращаемых значений функций тому, что описано в Стандарте. В случае strcmp не гарантируется, что именно функция вернет.