Based on #14320
This PR enable multiwallet test on appveyor. Also re-enable symlink tests on Windows which is available after Windows Vista.
I disable these tests in #13964 because I suppose that Windows does not support symlink, but I was wrong.
Concept ACK
Thanks for all your good appveyor work!
825 | @@ -826,6 +826,10 @@ void BerkeleyDatabase::Flush(bool shutdown) 826 | LOCK(cs_db); 827 | g_dbenvs.erase(env->Directory().string()); 828 | env = nullptr; 829 | + } else { 830 | + // To avoid accessing a map that has already deconstructed, do not call this when shutdown is true. g_dbenvs.erase would also erase this value. 831 | + // TODO: get rid of wild pointers
Wild pointers – scary stuff! Would you be able to construct a test case triggering that? What would it take to get rid of them?
@practicalswift This is the code from #14320. Better to move to here. It might can be resolved by #11911
142 | @@ -147,7 +143,7 @@ def wallet_file(name): 143 | 144 | self.restart_node(0, extra_args) 145 | 146 | - assert_equal(set(map(lambda w: w['name'], self.nodes[0].listwalletdir()['wallets'])), set(['', 'w3', 'w2', 'sub/w5', 'w7', 'w7', 'w8_copy', 'w1', 'w8', 'w'])) 147 | + assert_equal(set(map(lambda w: w['name'], self.nodes[0].listwalletdir()['wallets'])), set(['', 'w3', 'w2', os.path.join('sub', 'w5'), 'w7', 'w7', 'w8_copy', 'w1', 'w8', 'w']))
In windows it is possible to set -wallet=sub/w5, listwallets gives sub/w5 but listwalletdir gives sub\w5?
Yes, unless we change to calling fs::path::generic_string() instead of calling fs::path::string()
118f647 -> 216e8bf -> 4dca7d0a98d619c0aea572b181a7c5b95b2f62e5 Just rebase #14320
utACK 4dca7d0.