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 :
“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
Merci @elois, ca fonctionne mieux
Cependant je suis pas encore tout a fait au point:
372 passing (6m)
6 failing
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 ()
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)
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 ()
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)
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 ()
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 ()
Ç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
Du coup je ne sais pas quelle branche il te faut utiliser pour bidouiller
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
À 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/.
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)
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)
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)
A la lecture de l’erreur lié au timeout, je suppose que c’est du aux perfs de la machine
614 passing (5m)
1 failing
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)
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).