#ignite
#ignite
Вопрос:
Я настраиваю исходный код apache-ignite локально и сталкиваюсь с некоторой проблемой при запуске тестов.Тест ReadWriteLockMultiThreadedTest.testReadThenWriteLockAcquire, похоже, глючит, поскольку он продолжает выполняться из-за получения блокировки, которая уже получена. Блокировка записи будет конфликтовать с блокировкой чтения, поскольку она не освобождена к моменту получения блокировки записи из ReentrantReadWriteLock из Java.
Код для теста приведен ниже.
public void testReadThenWriteLockAcquire() throws Exception {
ReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
lock.writeLock().lock();
}
Может кто-нибудь объяснить, почему добавлен этот тест и как он должен выполняться?
Весь тестовый класс можно просмотреть из. https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/jvmtest/ReadWriteLockMultiThreadedTest.java
Ответ №1:
Я не думаю, что этот тест должен выполняться во время нормальной работы. Рассмотрите возможность всегда запускать Ignite с -DskipTests=true
.
Запуск теста Ignite является сложным, поскольку он включает в себя параллельный запуск десятков отдельных наборов тестов.
Комментарии:
1. Спасибо @alamar, я подумал, что этот тест должен был быть добавлен с какой-то целью. В любом случае, можете ли вы также помочь мне в дальнейшем, я пытаюсь настроить локальную настройку сборки для ignite, хочет запустить тесты для проверки сборки, как я узнаю, какие минимально допустимые тесты я должен запустить, чтобы убедиться, что код работает нормально?
2. Я думаю, вы могли бы попробовать запустить
IgniteBasicTestSuite
🙂 Плюс подходит для любых областей, к которым вы прикасались.3. Спасибо, это должно помочь, поскольку ReadWriteLockMultiThreadedTest был частью ignitelost и Found-TestSuite. На данный момент я запускал это, используя tryLock() вместо lock() для запуска теста.
4. Привет, Аламар, еще одна быстрая справка, если вы можете проверить. При запуске IgniteBasicTestSuite из модуля core в нашей gitlab я вижу несколько ошибок, как показано ниже, в то время как запуск неудачных тестов из локальной настройки разработчика в IDE выполняется нормально. Ошибка в gitlab: java.lang. ClassNotFoundException: org.apache.ignite.tests.p2p.P2PTestTaskExternalPath1 , который, похоже, является классами из других модулей. Итак, сначала нам нужно собрать все остальные модули?
5. @tarunk Да, я полагаю, вам нужно собрать все
extdata
модули. Я не уверен, как это обрабатывается в TC.