From d8be35708710b51ab92cf5bfc8756fab6cadf3cb Mon Sep 17 00:00:00 2001
From: Jeromy <jeromyj@gmail.com>
Date: Tue, 8 Mar 2016 20:28:04 -0800
Subject: [PATCH] add new test to show problem

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
---
 test/sharness/t0130-multinode.sh | 49 ++++++++++++++++++++++++++++++--
 1 file changed, 46 insertions(+), 3 deletions(-)

diff --git a/test/sharness/t0130-multinode.sh b/test/sharness/t0130-multinode.sh
index 6024d3b0e..bd3d59608 100755
--- a/test/sharness/t0130-multinode.sh
+++ b/test/sharness/t0130-multinode.sh
@@ -22,9 +22,16 @@ check_file_fetch() {
 	'
 }
 
-run_basic_test() {
-	startup_cluster 5
+check_dir_fetch() {
+	node=$1
+	ref=$2
 
+	test_expect_success "node can fetch all refs for dir" '
+		ipfsi $node refs -r $ref > /dev/null
+	'
+}
+
+run_single_file_test() {
 	test_expect_success "add a file on node1" '
 		random 1000000 > filea &&
 		FILEA_HASH=$(ipfsi 1 add -q filea)
@@ -35,6 +42,41 @@ run_basic_test() {
 	check_file_fetch 2 $FILEA_HASH filea
 	check_file_fetch 1 $FILEA_HASH filea
 	check_file_fetch 0 $FILEA_HASH filea
+}
+
+run_random_dir_test() {
+	test_expect_success "create a bunch of random files" '
+		random-files -depth=4 -dirs=5 -files=8 foobar > /dev/null
+	'
+
+	test_expect_success "add those on node 2" '
+		DIR_HASH=$(ipfsi 2 add -r -q foobar | tail -n1)
+	'
+
+	check_dir_fetch 0 $DIR_HASH
+	check_dir_fetch 1 $DIR_HASH
+	check_dir_fetch 2 $DIR_HASH
+	check_dir_fetch 3 $DIR_HASH
+	check_dir_fetch 4 $DIR_HASH
+}
+
+
+run_basic_test() {
+	startup_cluster 5
+
+	run_single_file_test
+
+	test_expect_success "shut down nodes" '
+		iptb stop
+	'
+}
+
+run_advanced_test() {
+	startup_cluster 5
+
+	run_single_file_test
+
+	run_random_dir_test
 
 	test_expect_success "shut down nodes" '
 		iptb stop
@@ -45,12 +87,13 @@ test_expect_success "set up tcp testbed" '
 	iptb init -n 5 -p 0 -f --bootstrap=none
 '
 
-run_basic_test
+run_advanced_test
 
 test_expect_success "set up utp testbed" '
 	iptb init -n 5 -p 0 -f --bootstrap=none --utp
 '
 
+# currently have issues with utp running the advanced tests
 run_basic_test
 
 test_done