mirror of
https://github.com/ddworken/hishtory.git
synced 2025-06-20 20:07:52 +02:00
Add additional tests for history importing
This commit is contained in:
parent
d33bd6a046
commit
c7d1abdc83
@ -1264,8 +1264,6 @@ func testHishtoryOffline(t *testing.T, tester shellTester) {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: tests for hishtory import
|
||||
|
||||
func testInitialHistoryImport(t *testing.T, tester shellTester) {
|
||||
// Setup
|
||||
defer testutils.BackupAndRestore(t)()
|
||||
@ -2453,6 +2451,48 @@ func testMultipleUsers(t *testing.T, tester shellTester) {
|
||||
}
|
||||
}
|
||||
|
||||
func createSyntheticImportEntries(t testing.TB, numSyntheticEntries int) {
|
||||
homedir, err := os.UserHomeDir()
|
||||
require.NoError(t, err)
|
||||
f, err := os.OpenFile(path.Join(homedir, ".bash_history"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
require.NoError(t, err)
|
||||
defer f.Close()
|
||||
for i := 1; i <= numSyntheticEntries; i++ {
|
||||
_, err := f.WriteString(fmt.Sprintf("echo command-%d\n", i))
|
||||
require.NoError(t, err)
|
||||
}
|
||||
require.NoError(t, f.Close())
|
||||
}
|
||||
|
||||
func TestImportHistory(t *testing.T) {
|
||||
// Setup
|
||||
tester := bashTester{}
|
||||
defer testutils.BackupAndRestore(t)()
|
||||
userSecret := installHishtory(t, tester, "")
|
||||
numSyntheticEntries := 305
|
||||
createSyntheticImportEntries(t, numSyntheticEntries)
|
||||
|
||||
// Run the import
|
||||
ctx := hctx.MakeContext()
|
||||
numImported, err := lib.ImportHistory(ctx, false, true)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, numImported, numSyntheticEntries+1)
|
||||
|
||||
// Check that it imported all of them
|
||||
out := tester.RunInteractiveShell(t, ` hishtory export -pipefail`)
|
||||
testutils.CompareGoldens(t, out, "TestImportHistory-export")
|
||||
|
||||
// Check that it was uploaded so that another user can get it
|
||||
testutils.ResetLocalState(t)
|
||||
installHishtory(t, tester, userSecret)
|
||||
out = strings.TrimSpace(tester.RunInteractiveShell(t, ` hishtory export -pipefail | wc -l`))
|
||||
require.Equal(t, "305", out)
|
||||
out = tester.RunInteractiveShell(t, ` hishtory export -pipefail`)
|
||||
require.Contains(t, out, "echo command-305")
|
||||
|
||||
// TODO: There is a bug here that will be evident if you check that the export is in the correct order on the remote device, because timestamps don't have sufficient granularity
|
||||
}
|
||||
|
||||
func BenchmarkImport(b *testing.B) {
|
||||
b.StopTimer()
|
||||
// Setup
|
||||
@ -2467,16 +2507,7 @@ func BenchmarkImport(b *testing.B) {
|
||||
|
||||
// Create a large history in bash that we will pre-import
|
||||
numSyntheticEntries := 100_000
|
||||
homedir, err := os.UserHomeDir()
|
||||
require.NoError(b, err)
|
||||
f, err := os.OpenFile(path.Join(homedir, ".bash_history"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
require.NoError(b, err)
|
||||
defer f.Close()
|
||||
for i := 1; i <= numSyntheticEntries; i++ {
|
||||
_, err := f.WriteString(fmt.Sprintf("echo command-%d\n", i))
|
||||
require.NoError(b, err)
|
||||
}
|
||||
require.NoError(b, f.Close())
|
||||
createSyntheticImportEntries(b, numSyntheticEntries)
|
||||
|
||||
// Benchmarked code:
|
||||
b.StartTimer()
|
||||
|
305
client/lib/goldens/TestImportHistory-export
Normal file
305
client/lib/goldens/TestImportHistory-export
Normal file
@ -0,0 +1,305 @@
|
||||
echo command-1
|
||||
echo command-2
|
||||
echo command-3
|
||||
echo command-4
|
||||
echo command-5
|
||||
echo command-6
|
||||
echo command-7
|
||||
echo command-8
|
||||
echo command-9
|
||||
echo command-10
|
||||
echo command-11
|
||||
echo command-12
|
||||
echo command-13
|
||||
echo command-14
|
||||
echo command-15
|
||||
echo command-16
|
||||
echo command-17
|
||||
echo command-18
|
||||
echo command-19
|
||||
echo command-20
|
||||
echo command-21
|
||||
echo command-22
|
||||
echo command-23
|
||||
echo command-24
|
||||
echo command-25
|
||||
echo command-26
|
||||
echo command-27
|
||||
echo command-28
|
||||
echo command-29
|
||||
echo command-30
|
||||
echo command-31
|
||||
echo command-32
|
||||
echo command-33
|
||||
echo command-34
|
||||
echo command-35
|
||||
echo command-36
|
||||
echo command-37
|
||||
echo command-38
|
||||
echo command-39
|
||||
echo command-40
|
||||
echo command-41
|
||||
echo command-42
|
||||
echo command-43
|
||||
echo command-44
|
||||
echo command-45
|
||||
echo command-46
|
||||
echo command-47
|
||||
echo command-48
|
||||
echo command-49
|
||||
echo command-50
|
||||
echo command-51
|
||||
echo command-52
|
||||
echo command-53
|
||||
echo command-54
|
||||
echo command-55
|
||||
echo command-56
|
||||
echo command-57
|
||||
echo command-58
|
||||
echo command-59
|
||||
echo command-60
|
||||
echo command-61
|
||||
echo command-62
|
||||
echo command-63
|
||||
echo command-64
|
||||
echo command-65
|
||||
echo command-66
|
||||
echo command-67
|
||||
echo command-68
|
||||
echo command-69
|
||||
echo command-70
|
||||
echo command-71
|
||||
echo command-72
|
||||
echo command-73
|
||||
echo command-74
|
||||
echo command-75
|
||||
echo command-76
|
||||
echo command-77
|
||||
echo command-78
|
||||
echo command-79
|
||||
echo command-80
|
||||
echo command-81
|
||||
echo command-82
|
||||
echo command-83
|
||||
echo command-84
|
||||
echo command-85
|
||||
echo command-86
|
||||
echo command-87
|
||||
echo command-88
|
||||
echo command-89
|
||||
echo command-90
|
||||
echo command-91
|
||||
echo command-92
|
||||
echo command-93
|
||||
echo command-94
|
||||
echo command-95
|
||||
echo command-96
|
||||
echo command-97
|
||||
echo command-98
|
||||
echo command-99
|
||||
echo command-100
|
||||
echo command-101
|
||||
echo command-102
|
||||
echo command-103
|
||||
echo command-104
|
||||
echo command-105
|
||||
echo command-106
|
||||
echo command-107
|
||||
echo command-108
|
||||
echo command-109
|
||||
echo command-110
|
||||
echo command-111
|
||||
echo command-112
|
||||
echo command-113
|
||||
echo command-114
|
||||
echo command-115
|
||||
echo command-116
|
||||
echo command-117
|
||||
echo command-118
|
||||
echo command-119
|
||||
echo command-120
|
||||
echo command-121
|
||||
echo command-122
|
||||
echo command-123
|
||||
echo command-124
|
||||
echo command-125
|
||||
echo command-126
|
||||
echo command-127
|
||||
echo command-128
|
||||
echo command-129
|
||||
echo command-130
|
||||
echo command-131
|
||||
echo command-132
|
||||
echo command-133
|
||||
echo command-134
|
||||
echo command-135
|
||||
echo command-136
|
||||
echo command-137
|
||||
echo command-138
|
||||
echo command-139
|
||||
echo command-140
|
||||
echo command-141
|
||||
echo command-142
|
||||
echo command-143
|
||||
echo command-144
|
||||
echo command-145
|
||||
echo command-146
|
||||
echo command-147
|
||||
echo command-148
|
||||
echo command-149
|
||||
echo command-150
|
||||
echo command-151
|
||||
echo command-152
|
||||
echo command-153
|
||||
echo command-154
|
||||
echo command-155
|
||||
echo command-156
|
||||
echo command-157
|
||||
echo command-158
|
||||
echo command-159
|
||||
echo command-160
|
||||
echo command-161
|
||||
echo command-162
|
||||
echo command-163
|
||||
echo command-164
|
||||
echo command-165
|
||||
echo command-166
|
||||
echo command-167
|
||||
echo command-168
|
||||
echo command-169
|
||||
echo command-170
|
||||
echo command-171
|
||||
echo command-172
|
||||
echo command-173
|
||||
echo command-174
|
||||
echo command-175
|
||||
echo command-176
|
||||
echo command-177
|
||||
echo command-178
|
||||
echo command-179
|
||||
echo command-180
|
||||
echo command-181
|
||||
echo command-182
|
||||
echo command-183
|
||||
echo command-184
|
||||
echo command-185
|
||||
echo command-186
|
||||
echo command-187
|
||||
echo command-188
|
||||
echo command-189
|
||||
echo command-190
|
||||
echo command-191
|
||||
echo command-192
|
||||
echo command-193
|
||||
echo command-194
|
||||
echo command-195
|
||||
echo command-196
|
||||
echo command-197
|
||||
echo command-198
|
||||
echo command-199
|
||||
echo command-200
|
||||
echo command-201
|
||||
echo command-202
|
||||
echo command-203
|
||||
echo command-204
|
||||
echo command-205
|
||||
echo command-206
|
||||
echo command-207
|
||||
echo command-208
|
||||
echo command-209
|
||||
echo command-210
|
||||
echo command-211
|
||||
echo command-212
|
||||
echo command-213
|
||||
echo command-214
|
||||
echo command-215
|
||||
echo command-216
|
||||
echo command-217
|
||||
echo command-218
|
||||
echo command-219
|
||||
echo command-220
|
||||
echo command-221
|
||||
echo command-222
|
||||
echo command-223
|
||||
echo command-224
|
||||
echo command-225
|
||||
echo command-226
|
||||
echo command-227
|
||||
echo command-228
|
||||
echo command-229
|
||||
echo command-230
|
||||
echo command-231
|
||||
echo command-232
|
||||
echo command-233
|
||||
echo command-234
|
||||
echo command-235
|
||||
echo command-236
|
||||
echo command-237
|
||||
echo command-238
|
||||
echo command-239
|
||||
echo command-240
|
||||
echo command-241
|
||||
echo command-242
|
||||
echo command-243
|
||||
echo command-244
|
||||
echo command-245
|
||||
echo command-246
|
||||
echo command-247
|
||||
echo command-248
|
||||
echo command-249
|
||||
echo command-250
|
||||
echo command-251
|
||||
echo command-252
|
||||
echo command-253
|
||||
echo command-254
|
||||
echo command-255
|
||||
echo command-256
|
||||
echo command-257
|
||||
echo command-258
|
||||
echo command-259
|
||||
echo command-260
|
||||
echo command-261
|
||||
echo command-262
|
||||
echo command-263
|
||||
echo command-264
|
||||
echo command-265
|
||||
echo command-266
|
||||
echo command-267
|
||||
echo command-268
|
||||
echo command-269
|
||||
echo command-270
|
||||
echo command-271
|
||||
echo command-272
|
||||
echo command-273
|
||||
echo command-274
|
||||
echo command-275
|
||||
echo command-276
|
||||
echo command-277
|
||||
echo command-278
|
||||
echo command-279
|
||||
echo command-280
|
||||
echo command-281
|
||||
echo command-282
|
||||
echo command-283
|
||||
echo command-284
|
||||
echo command-285
|
||||
echo command-286
|
||||
echo command-287
|
||||
echo command-288
|
||||
echo command-289
|
||||
echo command-290
|
||||
echo command-291
|
||||
echo command-292
|
||||
echo command-293
|
||||
echo command-294
|
||||
echo command-295
|
||||
echo command-296
|
||||
echo command-297
|
||||
echo command-298
|
||||
echo command-299
|
||||
echo command-300
|
||||
echo command-301
|
||||
echo command-302
|
||||
echo command-303
|
||||
echo command-304
|
||||
echo command-305
|
Loading…
x
Reference in New Issue
Block a user