Project

General

Profile

Actions

Bug #4379

closed

integration tests: fix broken tests

Added by Eric Newberry over 6 years ago. Updated 7 months ago.

Status:
Abandoned
Priority:
Normal
Assignee:
-
Category:
Integration Tests
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

The following integration tests are potentially broken and should be fixed:

test_auto_prefix_propagate

  • Asks for passphrase of a private key (should be non-interactive)
  • Fails to open a stream
  • Unrecognized option '-N' on a command
  • test_remote_register sub-test fails

test_hub_discovery

  • error while receiving data from socket (is this expected?) - the test still passes with this message appearing
  • minor: typo "TEST HUB DISCOVEY"

test_localhost_scope

  • ./out-master.sh: line 39: 3643 Terminated nc -vul 6363 > $workdir/logs/out/netcat.log 2>&1
  • I'm not certain if this test is actually broken, but this message appears and should be investigated further.

test_permanent_face

  • Syntax errors in permanent-face-test.sh - test shouldn't pass, but does even with these errors

Files

4550-8.out (193 KB) 4550-8.out 4550-8 test log Junxiao Shi, 03/19/2018 10:05 AM
4550-8.txz (200 KB) 4550-8.txz 4550-8 logs folder exclude logs/*/prepare Junxiao Shi, 03/19/2018 10:05 AM
4550-8_find_logs.txt (815 KB) 4550-8_find_logs.txt 4550-8 logs folder file list Junxiao Shi, 03/19/2018 10:05 AM
4550-11.log (39.4 KB) 4550-11.log 4550-11 test log Junxiao Shi, 03/29/2018 11:18 AM
4550-11.txz (227 KB) 4550-11.txz 4550-11 logs folder exclude logs/*/prepare Junxiao Shi, 03/29/2018 11:19 AM
c4550-13.txz (236 KB) c4550-13.txz 4550-13 logs folder exclude logs/*/prepare Junxiao Shi, 04/02/2018 11:30 AM
4550-14.txz (231 KB) 4550-14.txz 4550-14 logs folder exclude logs/*/prepare Junxiao Shi, 04/17/2018 10:56 AM
4550-17.txz (225 KB) 4550-17.txz 4550-17 logs folder exclude logs/*/prepare Junxiao Shi, 05/08/2018 09:23 AM

Related issues 3 (0 open3 closed)

Related to NFD - Bug #4410: `run_tests.py test_ndnping` fails to terminateClosedEric Newberry

Actions
Related to NFD - Feature #5108: Support running NFD integration tests in Docker containersClosedEric Newberry

Actions
Blocks NFD - Task #4380: Run integration tests for every Jenkins buildAbandoned

Actions
Actions #1

Updated by Eric Newberry over 6 years ago

  • Tracker changed from Task to Bug
Actions #2

Updated by Davide Pesavento over 6 years ago

  • Blocks Task #4380: Run integration tests for every Jenkins build added
Actions #3

Updated by Eric Newberry over 6 years ago

  • Assignee changed from Eric Newberry to Tao Chen
Actions #4

Updated by Davide Pesavento over 6 years ago

  • Related to Bug #4410: `run_tests.py test_ndnping` fails to terminate added
Actions #5

Updated by Eric Newberry about 6 years ago

  • Status changed from New to Code review
  • % Done changed from 0 to 70

Updated by Junxiao Shi about 6 years ago

This is the test log of Change 4550 patchset 8.

Environment: VirtualBox 5.2.0r118431, Vagrant 2.0.1
Command: nohup ./run-vagrant-tests.sh &

logs/*/prepare folder incorrectly captures the source code for every project, causing the folder to be over 7GB. These should not be downloaded to logs/.

Many tests are still failing.

Actions #7

Updated by Eric Newberry about 6 years ago

  • Description updated (diff)

test_localhost_scope appears to not actually be broken, so I crossed it out in the issue description.

Actions #8

Updated by Eric Newberry about 6 years ago

I will look into the passphrase issue separate from Tao's commit on Gerrit.

Updated by Junxiao Shi about 6 years ago

This is the test log of Change 4550 patchset 11.

Environment: VirtualBox 5.2.8r121009, Vagrant 2.0.3
Command: ./run-vagrant-tests.sh

logs/*/prepare folder incorrectly captures the source code for every project. These should not be downloaded to logs/.

test_remote_register is still failing.

I will look into the passphrase issue separate from Tao's commit on Gerrit.

You can use as many commits as necessary, but I won't merge any of them until all failures are fixed.

Actions #10

Updated by Eric Newberry about 6 years ago

Junxiao Shi wrote:

You can use as many commits as necessary, but I won't merge any of them until all failures are fixed.

I disagree strongly with this. The test cases are all independent, so they can be fixed independently.

Actions #11

Updated by Junxiao Shi about 6 years ago

Eric Newberry wrote:

Junxiao Shi wrote:

You can use as many commits as necessary, but I won't merge any of them until all failures are fixed.

I disagree strongly with this. The test cases are all independent, so they can be fixed independently.

Actions #12

Updated by Junxiao Shi about 6 years ago

The test cases are all independent, so they can be fixed independently.

Then disable failing tests in Python. Vagrant verification procedure is seen as “automated”, same as how Jenkins executes NFD unit tests. If anything is broken, the verification cannot pass.

Actions #13

Updated by Eric Newberry about 6 years ago

Junxiao Shi wrote:

The test cases are all independent, so they can be fixed independently.

Then disable failing tests in Python. Vagrant verification procedure is seen as “automated”, same as how Jenkins executes NFD unit tests. If anything is broken, the verification cannot pass.

They can pass if someone looks at the results and verifies that the test cases in question do in fact pass. We've had this issue in the past and have worked around it.

Actions #14

Updated by Junxiao Shi about 6 years ago

This is the test log of Change 4550 patchset 13.

Environment: VirtualBox 5.2.8r121009, Vagrant 2.0.3
Command: ./run-vagrant-tests.sh

The script needed a manual input for "passphrase". After that, it still fails to terminate. It prints the following and then gets stuck.

======================================================================
FAIL: test_eth_multicast (test_multicast.test_multicast)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/integration-tests/test_multicast/test_multicast.py", line 44, in test_eth_multicast
    self.fail(self.errormsg[ret])
AssertionError: Interest ndn:/test-mcast/B/1 is unanswered.

======================================================================
FAIL: test_remote_register (test_auto_prefix_propagate.test_auto_prefix_propagate)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/integration-tests/test_auto_prefix_propagate/test_auto_prefix_propagate.py", line 26, in test_remote_register
    self.fail(" >> TEST AUTOMATIC PROPAGATE PROCEDURE FAILED")
AssertionError:  >> TEST AUTOMATIC PROPAGATE PROCEDURE FAILED

----------------------------------------------------------------------
Ran 35 tests in 1656.231s

FAILED (failures=2)

Inside vagrant ssh A, it seems that NFD did not stop after a certain test case:

vagrant@vagrant:~$ pstree -p 2604
run_tests.py(2604)---run_tests.py(5641)---sudo(5644)---nfd(5646)-+-{nfd}(5648)
                                                                 `-{nfd}(5649)

After typing nfd-stop within the VM, the outer script proceeds.

Actions #15

Updated by Eric Newberry about 6 years ago

Junxiao Shi wrote:

Inside vagrant ssh A, it seems that NFD did not stop after a certain test case:

vagrant@vagrant:~$ pstree -p 2604
run_tests.py(2604)---run_tests.py(5641)---sudo(5644)---nfd(5646)-+-{nfd}(5648)
                                                                 `-{nfd}(5649)

After typing nfd-stop within the VM, the outer script proceeds.

This is probably related to #4410 and Ubuntu 16.04.

Actions #16

Updated by Junxiao Shi about 6 years ago

This is the test log of Change 4550 patchset 14.

Environment: VirtualBox 5.2.8r121009, Vagrant 2.0.3
Command: ./run-vagrant-tests.sh

The script needed a manual input for "passphrase". After that, it still fails to terminate. It prints the following and then gets stuck.

======================================================================
FAIL: test_remote_register (test_auto_prefix_propagate.test_auto_prefix_propagate)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/integration-tests/test_auto_prefix_propagate/test_auto_prefix_propagate.py", line 26, in test_remote_register
    self.fail(" >> TEST AUTOMATIC PROPAGATE PROCEDURE FAILED")
AssertionError:  >> TEST AUTOMATIC PROPAGATE PROCEDURE FAILED

======================================================================
FAIL: test_aggregation (test_interest_aggregation.test_interest_aggregation)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/integration-tests/test_interest_aggregation/test_interest_aggregation.py", line 137, in test_aggregation
    self.checkAndReportFailure("ndnpeek-4", "Peek Client 4")
  File "/home/vagrant/integration-tests/test_interest_aggregation/test_interest_aggregation.py", line 42, in checkAndReportFailure
    self.fail(">> TEST FAILED - received non-zero return code from " + processName)
AssertionError: >> TEST FAILED - received non-zero return code from Peek Client 4

----------------------------------------------------------------------
Ran 35 tests in 1004.307s

FAILED (failures=2)

Inside vagrant ssh A, it seems that NFD did not stop after a certain test case:

vagrant@vagrant:~$ pstree -p 2616
run_tests.py(2616)---run_tests.py(5758)---sudo(5761)---nfd(5763)-+-{nfd}(5765)
                                                                 `-{nfd}(5766)

After typing nfd-stop within the VM, the outer script proceeds.

Actions #17

Updated by Junxiao Shi almost 6 years ago

Change 4550 patchset 17 has same failures as patchset 14, except that there's no passphrase prompt.

Actions #18

Updated by Eric Newberry almost 6 years ago

  • Assignee changed from Tao Chen to Eric Newberry
Actions #19

Updated by Eric Newberry almost 6 years ago

As of the latest patchset of the change to fix this issue (4450,17 rebased onto the current Git HEAD), the following test cases are failing:

  • test_hub_discovery
  • test_remote_register
  • test_aggregation

The issue described in #4410 remains present as well.

Actions #20

Updated by Alexander Lane almost 6 years ago

In regards to test_aggregation, it is most likely due to "Peek Client 4" using the deprecated ChildSelector selector (test_interest_aggregation.py line 125), which will cause it to fail with a return code of 2 on systems with newer versions of NDN-tools.

Actions #21

Updated by Eric Newberry almost 6 years ago

test_aggregation is failing because it is attempting to supply an argument to ndnpeek that was removed recently (set rightmost ChildSelector). This seems to be a larger issue than simply fixing a failure due to changed tool syntax or output format. The test README lists this for the failing step:

  • Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.

Can this be tested using the new Interest elements, or should this test be removed?

Actions #22

Updated by Eric Newberry almost 6 years ago

Alexander Lane wrote:

In regards to test_aggregation, it is most likely due to "Peek Client 4" using the deprecated ChildSelector selector (test_interest_aggregation.py line 125), which will cause it to fail with a return code of 2 on systems with newer versions of NDN-tools.

Just saw this right as I was posting my note about the same thing. This test case needs to be redesigned to use the new Interest elements.

Also, the integration tests (unless told otherwise), always install the latest version of ndn-tools from git on the system, so this will always occur when running the integration tests with the default options, no matter the version of ndn-tools previously installed on the system.

Actions #23

Updated by Davide Pesavento almost 6 years ago

Eric Newberry wrote:

  • Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.

Can this be tested using the new Interest elements, or should this test be removed?

Just delete this particular test. ChildSelector is deprecated.

Actions #24

Updated by Eric Newberry almost 6 years ago

Davide Pesavento wrote:

Eric Newberry wrote:

  • Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.

Can this be tested using the new Interest elements, or should this test be removed?

Just delete this particular test. ChildSelector is deprecated.

This particular test or the entire test_integration_aggregation test case?

Actions #25

Updated by Junxiao Shi almost 6 years ago

test_aggregation is failing because it is attempting to supply an argument to ndnpeek that was removed recently (set rightmost ChildSelector). This seems to be a larger issue than simply fixing a failure due to changed tool syntax or output format. The test README lists this for the failing step:

  • Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.

The intention of this step is to express two Interests with same name that should not be aggregated by PIT.
This step shall be replaced with:

  • Start ndnpeek to request ndn:/test-agg/B CanBePrefix=false, and another instance to request ndn:/test-agg/B CanBePrefix=true. Wait until they terminate. Fail if either is unanswered.

This replacement step can achieve the same goal as original test case.

Actions #26

Updated by Eric Newberry almost 6 years ago

  • Related to Feature #4633: Allow password to be specified to ndnsec-import/export on command line added
Actions #27

Updated by Davide Pesavento almost 6 years ago

  • Related to deleted (Feature #4633: Allow password to be specified to ndnsec-import/export on command line)
Actions #28

Updated by Davide Pesavento almost 6 years ago

  • Related to Feature #4588: ndnsec export/import: accept passphrase from command line option added
Actions #29

Updated by Davide Pesavento almost 6 years ago

  • Related to deleted (Feature #4588: ndnsec export/import: accept passphrase from command line option)
Actions #30

Updated by Davide Pesavento almost 6 years ago

  • Blocked by Feature #4588: ndnsec export/import: accept passphrase from command line option added
Actions #31

Updated by Eric Newberry almost 6 years ago

  • Assignee deleted (Eric Newberry)
Actions #32

Updated by Junxiao Shi almost 6 years ago

  • Blocked by deleted (Feature #4588: ndnsec export/import: accept passphrase from command line option)
Actions #33

Updated by Davide Pesavento over 4 years ago

  • Target version deleted (v0.7)
Actions #34

Updated by Davide Pesavento over 4 years ago

  • Status changed from Code review to New
  • % Done changed from 70 to 0
Actions #35

Updated by Eric Newberry almost 4 years ago

  • Related to Feature #5108: Support running NFD integration tests in Docker containers added
Actions #36

Updated by Eric Newberry almost 4 years ago

  • Status changed from New to In Progress
  • Assignee set to Eric Newberry
Actions #37

Updated by Eric Newberry almost 4 years ago

Currently broken tests (on Docker):

  • test_auto_prefix_propagate (test_remote_register)
  • test_hub_discovery
  • test_interest_loop (test_client_control)
  • test_linkfail (test_multicast, test_ncc)
  • test_localhost_scope (test_localhost_scope_in, test_localhost_scope_out)
  • test_mobility_link
  • test_multicast (test_eth_multicast)
  • test_nack
  • test_ndntraffic
Actions #38

Updated by Davide Pesavento almost 2 years ago

  • Status changed from In Progress to New
  • Assignee deleted (Eric Newberry)
Actions #39

Updated by Davide Pesavento 7 months ago

  • Status changed from New to Abandoned
Actions

Also available in: Atom PDF