Fail following tuto duniter dev contributions

Je commence a suivre les instructions sur cette page, pour essayer de me plonger dans les entrailles :

j’ai dl le zip, et j’ai de nombreuses erreurs sur la commande ‘npm test’
dont une recurrente relative a la base SQLITE, il n existe pas de table “block”…

max:~/duniter-master$ uname -a
Linux 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

max:~/duniter-master$ node -v
v7.10.0

max:~/duniter-master$ npm -v
4.2.0

j’ai execute la commande npm install avec une horde de warning le resultat ici c’est donc la 2e fois que je la lance

max:~/duniter-master$ npm install
npm WARN duniter@1.3.10 requires a peer of duniter-prover@1.3.x but none was installed.
npm WARN duniter-bma@1.3.2 requires a peer of duniter@1.3.x but none was installed.
npm WARN duniter-crawler@1.3.8 requires a peer of duniter@1.3.x but none was installed.
npm WARN duniter-keypair@1.3.4 requires a peer of duniter@1.3.x but none was installed.
npm WARN duniter-prover@1.4.0 requires a peer of duniter@1.3.x but none was installed.
npm WARN duniter-ui@1.3.11 requires a peer of duniter@1.3.x but none was installed.
npm WARN bl@0.7.0 requires a peer of stream-browserify@* but none was installed.

enfin

max:~/duniter-master$ npm test

Et la je fail…
Je met ici la trace pour la premiere fois ou intervient l’erreur, si besoin la trace complete plus tard :

  1. “before all” hook
    HTTP API
    Unhandled rejection: Error: SQL error “SQLITE_ERROR: no such table: block” on query “SELECT * FROM block WHERE NOT fork ORDER BY number DESC LIMIT 1”
    Error: SQL error “SQLITE_ERROR: no such table: block” on query “SELECT * FROM block WHERE NOT fork ORDER BY number DESC LIMIT 1”
    at db.all (/home/perso/msduniter/duniter-master/app/lib/dal/drivers/sqlite.js:43:23)
    at replacement (/home/perso/msduniter/duniter-master/node_modules/sqlite3/lib/trace.js:20:31)
    at Statement.errBack (/home/perso/msduniter/duniter-master/node_modules/sqlite3/lib/sqlite3.js:16:21)
    Unhandled rejection: Error: SQL error “SQLITE_ERROR: no such table: block” on query “SELECT * FROM block WHERE NOT fork ORDER BY number DESC LIMIT 1”
    Error: SQL error “SQLITE_ERROR: no such table: block” on query “SELECT * FROM block WHERE NOT fork ORDER BY number DESC LIMIT 1”
    at db.all (/home/perso/msduniter/duniter-master/app/lib/dal/drivers/sqlite.js:43:23)
    at replacement (/home/perso/msduniter/duniter-master/node_modules/sqlite3/lib/trace.js:20:31)
    at Statement.errBack (/home/perso/msduniter/duniter-master/node_modules/sqlite3/lib/sqlite3.js:16:21)
    19) “before all” hook

des suggestions ?

2 Likes

La branche master n’est plus a jours ça doit être pour ça, rebuild sur la branche 1.3 et ça devrait fonctionner :wink:

Merci @elois, ca fonctionne mieux :slight_smile:
Cependant je suis pas encore tout a fait au point:

372 passing (6m)
6 failing

  1. Identities kicking membershipExpiresIn should be positive for cat (actualized member):

    AssertionError: expected 934 to be 1934

    • expected - actual

    -934
    +1934

    at expectAnswer (test/integration/identity-kicking.js:103:69)
    at test/integration/tools/http.js:73:16
    at Generator.next ()

  2. Revocation if we commit a revocation, cat should be revoked:
    StatusCodeError: 500 - “{\n "ucode": 1002,\n "message": "ruleMembershipPeriod"\n}”
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

  3. Revocation should have 2 members:
    AssertionError: expected Array [
    Object {
    pubkey: ‘DKpQPUL4ckzXYdnDRvCRKAm1gNvSdmAXnTrJZ7LvM5Qo’,
    uid: ‘toc’
    },
    Object {
    pubkey: ‘DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV’,
    uid: ‘tic’
    },
    Object {
    pubkey: ‘HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd’,
    uid: ‘cat’
    }
    ] to have property length of 2 (got 3)
    at test/integration/revocation-test.js:151:43
    at test/integration/tools/http.js:73:16
    at Generator.next ()

  4. Revocation cat should not be able to join back:
    StatusCodeError: 500 - “{\n "ucode": 1002,\n "message": "ruleMembershipPeriod"\n}”
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

  5. Revocation if we revert the commit, cat should not be revoked:
    TypeError: Cannot read property ‘number’ of undefined
    at app/lib/computation/blockchainContext.js:250:50
    at Generator.next ()

  6. Revocation if we commit again, cat should NOT be revoked (we have lost the revocation):
    TypeError: Cannot read property ‘revoked_on’ of null
    at app/lib/dal/fileDAL.js:268:16
    at Generator.next ()

npm ERR! Test failed. See above for more details.

Ça ne viens pas de ta config j’ai les mêmes erreur sur les tests unitaires avec la branche 1.3, mais de toute façon la 1.4 est sur le point d’être livrée et elle implique une modif du code de test donc peut être que @cgeek ne s’est pas embêter a assurer la rétro-compatibilité des tests unitaires, ce qui se comprend il a déjà tant de boulot :stuck_out_tongue:

Du coup je ne sais pas quelle branche il te faut utiliser pour bidouiller :confused:

je vais prendre mon mal en patience,
dans tout les cas, merci des précisions :slight_smile:

1 Like

Essayez la branche dev. Vous serez pile poil au même niveau que moi, je pourrais mieux vous y aider.

test de la branche dev:

565 passing (7m)
13 failing

  1. Module usage /node/summary should answer:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  2. Peers garbaging should be able to garbage some peers:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  3. Module usage no options on brand new node should generate random key:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  4. CLI [spawn] sync 10 first blocks --memory:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  5. Forwarding Nodes “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  6. HTTP API “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  7. Network Merkle “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  8. Network “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  9. Integration Node 1 “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  10. v1.0 Module API should be able to execute hello command:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  11. v1.0 Module API Configuration hooks verify that we get the saved options:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  12. v1.0 Module API Service triggers verify that services are started:
    TypeError: Cannot read property ‘length’ of null
    at new State (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:122:26)
    at loadAll (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1545:15)
    at load (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1574:3)
    at Object.safeLoad (/home/perso/msduniter/duniter-dev/node_modules/js-yaml/lib/js-yaml/loader.js:1586:10)
    at Object. (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:5:295)
    at Generator.next ()
    at fulfilled (/home/perso/msduniter/duniter-dev/app/modules/keypair/index.js:1:14050)
    at process._tickCallback (internal/process/next_tick.js:109:7)

  13. v1.0 Module API Service triggers verify that services are stopped:

    AssertionError: expected false to be true

    • expected - actual

    -false
    +true

    at Assertion.fail (/home/perso/msduniter/duniter-dev/node_modules/should/cjs/should.js:258:17)
    at Assertion.value (/home/perso/msduniter/duniter-dev/node_modules/should/cjs/should.js:335:19)
    at /home/perso/msduniter/duniter-dev/test/integration/v1.0-modules-api.js:266:41
    at Generator.next ()
    at onFulfilled (/home/perso/msduniter/duniter-dev/node_modules/co/index.js:65:19)
    at /home/perso/msduniter/duniter-dev/node_modules/co/index.js:54:5
    at co (/home/perso/msduniter/duniter-dev/node_modules/co/index.js:50:10)
    at Context.it (/home/perso/msduniter/duniter-dev/test/integration/v1.0-modules-api.js:262:50)
    at callFn (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:348:21)
    at Test.Runnable.run (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runnable.js:340:7)
    at Runner.runTest (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:443:10)
    at /home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:549:12
    at next (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:361:14)
    at /home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:371:7
    at next (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:295:14)
    at Immediate. (/home/perso/msduniter/duniter-dev/node_modules/mocha/lib/runner.js:339:5)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

npm ERR! Test failed. See above for more details.

À mon avis ton installation n’est pas (ou plus) bonne.

Je t’invite à :

rm -rf node_modules
yarn
npm test

Je te conseille l’utilisation de yarn à la place de npm install, au moins nous serons sûr de partager strictement le même contenu pour le dossier node_modules/.

Ok, j’ai install yarn en suivant la procédure sur le site
Installation | Yarn

yarn --version
0.27.5

maintenant la serie de test:

604 passing (6m)
3 failing

  1. CLI [spawn] reset data:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/ms_duniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  2. HTTP API “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/ms_duniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

  3. Network “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/ms_duniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

npm ERR! Test failed. See above for more details.

Je relance le test et HOP: 2 erreurs en moins

A la lecture de l’erreur lié au timeout, je suppose que c’est du aux perfs de la machine :confused:

614 passing (5m)
1 failing

  1. HTTP API “before all” hook:
    Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves.
    at Timeout. (/home/perso/ms_duniter/duniter-dev/node_modules/mocha/lib/runnable.js:232:19)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

npm ERR! Test failed. See above for more details.

Oui c’est cela je pense. Tu peux forcer en modifiant la valeur dans test/mocha.opts pour vérifier :

--timeout 20000

Mais à part ça à mon avis tout roule sur ta machine. Faut dire, il doit y avoir de nombreuses optimisations possibles pour que Duniter s’exécute plus rapidement, et donc aussi ses tests.

D’ailleurs ce sont plus des tests automatisés que des tests unitaires. Je dirais que ces TA regroupent aussi bien des tests unitaires que des tests d’intégration (surtout ceux-là, en fait).

j’ai modifié le fichier mocha.opts:

timeout = 10000 > 16 erreur, j’épargne les détails
timeout = 20000 > 1 erreur "timeout…"
timeout = 30000 > 1 erreur tjs la meme : "timeout …"
timeout = 40000 > 1 erreur tjs la meme : “timeout …”

j’arrete la serie et passe au niveau III du tuto voir si ca roule.