Bitcoin

Desarrollo de Bitcoincore – Bitcoin Core: Error de prueba de unidad: system_tests.cpp: Línea 48 BOOST_AUTO_TEST (run_command)

single-image
(adsbygoogle = window.adsbygoogle || []).push({});


Cloné Bitcoin Core e hice la compilación. Sin embargo, se produce un error de prueba unitaria en system_tests.cpp, línea 48 BOOST_AUTO_TEST (run_command).

Primero, mi entorno:

  1. Hardware: Intel i7-8550U a 1,80 GHz 2001 MHz, 4 núcleos, 8 procesadores lógicos, x64.
  2. Sistema operativo: Windows 10 Home
  3. Cadena de herramientas: Visual Studios 2019 v142, Configuración: Lanzamiento, Plataforma x64.

La compilación se completa sin errores, pero aparece el siguiente mensaje:

C: Users Name Source Repos Bitcoin-first build_msvc test_bitcoin test_bitcoin.vcxproj: Advertencia: Los marcadores de posición en los elementos del proyecto no son compatibles con los proyectos de VC y pueden provocar un comportamiento inesperado, inestabilidad y un rendimiento reducido en Visual Studio IDE para liderar. Consulte https://aka.ms/cpp/projectwildcards para conocer las opciones compatibles.

Cuando ejecuta test_bitcoin, todas las pruebas pasan excepto run_command de la línea system_tests.cpp de la fuente 48. Recibo el siguiente error:

struct boost :: process :: process_error: CreateProcess falló: el sistema no puede encontrar el archivo especificado.

VS Test Explorer también ofrece:

Ubicación de almacenamiento desconocida (0): excepción en “run_command”: struct boost :: process :: process_error: CreateProcess falló: el sistema no puede encontrar el archivo especificado. system_tests.cpp (52): último punto de control:

El código relevante de system_tests.cpp (ignore cualquier problema con la sintaxis de espaciado después de los números de línea. Los agregué manualmente y están fuera de discusión):

















































48 BOOST_AUTO_TEST_CASE(run_command)
49 {
50    {
51        const UniValue result = RunCommandParseJSON("");
52        BOOST_CHECK(result.isNull());
53    }
54    {
55 #ifdef WIN32
56       // Windows requires single quotes to prevent escaping double quotes from the JSON...
57       // const UniValue result = RunCommandParseJSON("cmd.exe /c echo '{"success": true}'");
58        const UniValue result = RunCommandParseJSON("echo '{"success": true}'");
59   
60 #else
61        // ... but Linux and macOS echo a single quote if it's used
62        const UniValue result = RunCommandParseJSON("echo "{"success": true}"");
63 #endif
64        BOOST_CHECK(result.isObject());
65        const UniValue& success = find_value(result, "success");
66        BOOST_CHECK(!success.isNull());
67        BOOST_CHECK_EQUAL(success.getBool(), true);
68    }
69    {
70        // An invalid command is handled by Boost
71        BOOST_CHECK_EXCEPTION(RunCommandParseJSON("invalid_command"), boost::process::process_error, checkMessage); // Command failed
72    }
73    {
74        // Return non-zero exit code, no output to stderr
75        BOOST_CHECK_EXCEPTION(RunCommandParseJSON("false"), std::runtime_error, checkMessageFalse);
76    }
77    {
78        // Return non-zero exit code, with error message for stderr
79        BOOST_CHECK_EXCEPTION(RunCommandParseJSON("ls nosuchfile"), std::runtime_error, checkMessageStdErr);
80    }
81    {
82        BOOST_REQUIRE_THROW(RunCommandParseJSON("echo "{""), std::runtime_error); // Unable to parse JSON
83    }
84    // Test std::in, except for Windows
85 #ifndef WIN32
86    {
87        const UniValue result = RunCommandParseJSON("cat", "{"success": true}");
88        BOOST_CHECK(result.isObject());
89        const UniValue& success = find_value(result, "success");
90        BOOST_CHECK(!success.isNull());
91        BOOST_CHECK_EQUAL(success.getBool(), true);
92    }
93 #endif
94 }
95 #endif // HAVE_BOOST_PROCESS

La línea 58 está cancelada. Basado en esto https://stackoverflow.com/questions/47028660/boost-createprocess-failed, comenté la línea 58 y agregué la siguiente línea 57:


57  const UniValue result = RunCommandParseJSON("cmd.exe /c echo '{"success": true}'");

Cuando ejecuto el archivo system_tests.cpp nuevamente, superé el error CreateProcess, pero en la línea 48, system_tests.cpp, run_command (), arroja el siguiente error:

Clase std :: runtime_error: JSON no se puede analizar: ‘{“success”: true}’.

VS Test Explorer también dice:

ubicación desconocida (0): excepción en “run_command”: class std :: runtime_error: JSON no se puede analizar: ‘{“success”: true}’ system_tests.cpp (52): último punto de control:

Me cuesta creer que la prueba sea incorrecta; no he encontrado nada sobre este error. En cambio, sospecho que no he configurado correctamente un conmutador, una opción o una configuración en ninguna parte.

Cualquier comentario o ayuda será muy apreciado.

You may also like

Bitcoin

Ingresos del triple cuadrado impulsados ​​por las compras de Bitcoin

Square, Inc. (SQ) informó ganancias para el primer trimestre de 2021 esta semana, y los ingresos de la compañía superaron con creces las expectativas de los analistas. Las ventas trimestrales a principios de año superaron los $ 5 mil millones, en comparación con un pronóstico promedio de los analistas de $ 3,37 mil millones. En el último trimestre de 2020, la compañía compró $ 50 millones en BTC, seguidos de otros $ 170 millones en BTC en el primer trimestre de este año.

Aplicación de efectivo y cripto

La aplicación móvil de Square, Cash App, se ha ocupado de forma fructífera con Bitcoin en la aplicación. El volumen de Bitcoin se ha multiplicado año tras año, pasando de $ 306 millones el año pasado a más de $ 3.5 mil millones el último trimestre. Las ganancias de las transacciones criptográficas para el trimestre fueron de $ 75…

View More Article
Blockchain

El Informe del mercado global de Blockchain muestra el crecimiento en Covid Era debido a la demanda de seguridad y transparencia: Blockchain News, Opinion, TV and Jobs

Con una tasa de crecimiento anual (CAGR) del 79%, el mercado de blockchain mira hacia un futuro brillante. Este reciente crecimiento (2020-2021) se debe principalmente a que las empresas retoman el negocio y se ajustan a la nueva normalidad mientras se recuperan de los efectos del COVID-19 que anteriormente conducían a medidas de contención restrictivas como el distanciamiento social, el trabajo a distancia y el trabajo había dado lugar a la cierre de actividades comerciales que crearon desafíos operacionales.

No se preveía que la tecnología Blockchain se volviera tan popular este año. Empresas de diversas industrias están mostrando un interés creciente en utilizar esta tecnología para mejorar sus procesos comerciales. La pandemia de COVID-19 aceleró la transformación digital en muchas áreas, particularmente mediante el uso de la tecnología de contabilidad distribuida llamada blockchain. Se prevé que el mercado alcance los 60.200 millones de dólares en 2025…

View More Article
Bitcoin

Inventé un algoritmo de consenso de blockchain para una red sin permisos. ¿Cómo puede darse a conocer la idea si no conozco a nadie en la industria?


Inventé un <a title="See the tag: algoritmo (5 posts)" class="autobesttag" rel="nofollow" href="https://schuss.es/tag/algoritmo/">algoritmo</a> de consenso de blockchain para una red sin permisos. ¿Cómo puede darse a <a title="See the tag: conocer (5 posts)" class="autobesttag" rel="nofollow" href="https://schuss.es/tag/conocer/">conocer</a> la idea <a title="See the tag: si (2 posts)" class="autobesttag" rel="nofollow" href="https://schuss.es/tag/si/">si</a> no conozco a nadie en la industria? – Intercambio de pila de Bitcoin



View More Article
Bitcoin

¿DOGE como dinero de Internet? TikToker y los fanáticos del deporte ven un caso de uso para Dogecoin

En las últimas semanas, ha sido difícil pasar un día sin encontrar un titular o 50 que hacen referencia a Dogecoin (DOGE). La criptomoneda Meme ha experimentado un aumento de precio exponencial después de varias celebridades, incluido el multimillonario Mark Cuban, el miembro de Kiss Gene Simmons y el ícono del entretenimiento Snoop Dogg.

Es fácil descartar lo que está sucediendo con DOGE en otra ronda de locura exagerada, como las que se vieron antes, especialmente con las ideas de taller de Elon Musk de “The Dogefather” frente a sus ojos. Sábado noche en directo Presentando concierto el 8 de mayo.

Esta vez, sin embargo, sucede algo que nunca antes se había visto: el uso de Dogecoin para pagos ha aumentado junto con el precio de la moneda. Además de los Dallas Mavericks de la Asociación Nacional de Baloncesto, un equipo liderado por el defensor de…

View More Article
Ethereum

Ethereum para los próximos mil millones: anunciando el programa de becas EF

Los avances que se han logrado en el ecosistema Ethereum recientemente son realmente inspiradores. Ya sea que esté entusiasmado con la adopción de una prueba de funcionamiento (y Ethereum más rápido, más seguro y más ecológico), la próxima fusión y otras actualizaciones importantes, o algunas de las muchas aplicaciones y soluciones que tienen el poder de transformar varias industrias. Es un gran momento para ser parte de la comunidad Ethereum.

Nuestro rol en evolución

Si bien todos estamos entusiasmados con el crecimiento de Ethereum y el futuro que nuestro trabajo colectivo puede ayudar a moldear, también me preguntan a menudo sobre el papel de la Fundación Ethereum y cómo encaja nuestra filosofía de resta en ese futuro.

“La sociedad crece mucho cuando los ancianos plantan árboles a la sombra de los que saben que nunca deberían sentarse”.– proverbio…

View More Article