Opened 3 years ago

Closed 3 years ago

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

WW_intrusive_list Tulchinskiy lab_04

Reported by: tulchinskij.aleksandr Owned by: Антон Филатов
Component: WW_intrusive_list Version: 2.0
Keywords: Cc:

Description


Change History (4)

comment:1 Changed 3 years ago by Антон Филатов

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

Запятая лишняя. из-за неё все автотесты верещат, что всё неправильно.
Помимо этого ломается тест:

add 1 2
add 3 4
rm
rma 
add 1 8
print

кажется, что где-то плохо что-то удаляете.
Кстати, на тестах, где используется rma, иногда ваша программа может навсегда зависать. думаю, это это тоже связано с неправильной работой с памятью, но я не очень понимаю, почему иногда она просто неправильно отрабатывает, а иногда прям зависает

вот здесь, например, зависает

add 1 2
add 2 2
rma
add 1 3
add 3 1
print

У тому же на все тесты ругается валгринд. Вот пример вывода валгринда на тест, который дёргает все описанные вами функции

==2163== error calling PR_SET_PTRACER, vgdb might block
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108DE7: add_node (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108913: add_point (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108B9B: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108EA5: get_length (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108CA7: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x1089D0: show_all_points (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108C51: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108A34: show_all_points (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108C51: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108E22: remove_node (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108973: remove_point (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108C23: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x10899D: remove_point (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108C23: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108AA7: remove_all_points (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==    by 0x108C7C: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108D33: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163== Conditional jump or move depends on uninitialised value(s)
==2163==    at 0x108D7B: main (in /home/wwu/cpp20/cpp20/tulchinskij.aleksandr/lab_04/lab_04)
==2163==
==2163==
==2163== HEAP SUMMARY:
==2163==     in use at exit: 0 bytes in 0 blocks
==2163==   total heap usage: 9 allocs, 9 frees, 1,168 bytes allocated
==2163==
==2163== All heap blocks were freed -- no leaks are possible

И пробелы в конце строки уберите, пожалуйста
0/8 за корректность

Стиль:

  • У вас падает makefile, если его дважды подряд запустить. вместо того, чтобы сказать, что nothing to be done, он падает - нехорошо
  • куда-то пропал init_list - верните, пожалуйста, на место. Его цель - убрать undefined behaviour, когда список только-только создан, его head->next смотрит пока на мусор, а мы им уже пользуемся
  • 239 - у вас волшебная константа. То есть она много где в коде есть и стороннему читателю не очень понятно, зачем она нужна. Я на паре скажу поаккуратнее, что с этим делать, но если коротко, заведите именованную константу и подставляйте её вовсюда, где вам нужно 239
  • рекомендую пользоваться typedef, чтобы не писать везде struct point

2,5/4 за стиль

Итого 2,5/12

comment:2 Changed 3 years ago by tulchinskij.aleksandr

Кажется, такой ввод некорректен по условию: "Гарантируется, что команда либо корректна, либо состоит из одного токена (название операции), который не совпадает ни с одном из перечисленных выше. Например, команда sort может быть подана на вход, а вот add 10 или sort 10 20 — уже нет."

add 1 2
add 3 4
rm
rma 
add 1 8
print

Пробелов в конце строки я не вывожу.

Last edited 3 years ago by tulchinskij.aleksandr (previous) (diff)

comment:3 Changed 3 years ago by tulchinskij.aleksandr

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

comment:4 Changed 3 years ago by Антон Филатов

Resolution: задача сдана
Status: assignedclosed

Теперь тесты проходят. 8/8 за корректность.

Стиль:

  • Теперь makefile что-то пересобирает, даже если ничего не изменилось

3,5/4

Итого: 11,5/12

Note: See TracTickets for help on using tickets.