@@ -1822,4 +1822,61 @@ test_expect_success 'verb-specific cache-server: get does NOT use gvfs.post.cach
18221822 verify_server_was_not_contacted 1
18231823'
18241824
1825+ test_expect_success ' verb-specific cache-server: all verbs with different servers' '
1826+ test_when_finished "per_test_cleanup" &&
1827+ test_when_finished "git -C \"$REPO_T1\" config --unset gvfs.cache-server" &&
1828+ test_when_finished "git -C \"$REPO_T1\" config --unset gvfs.prefetch.cache-server" &&
1829+ test_when_finished "git -C \"$REPO_T1\" config --unset gvfs.get.cache-server" &&
1830+ test_when_finished "git -C \"$REPO_T1\" config --unset gvfs.post.cache-server" &&
1831+ start_gvfs_protocol_server 0 &&
1832+ start_gvfs_protocol_server 1 &&
1833+ start_gvfs_protocol_server 2 &&
1834+ start_gvfs_protocol_server 3 &&
1835+
1836+ # Configure each verb to use a different server:
1837+ # - server 0: default (unused in this test)
1838+ # - server 1: prefetch
1839+ # - server 2: get
1840+ # - server 3: post
1841+ git -C "$REPO_T1" config gvfs.cache-server "$(cache_server_url 0)" &&
1842+ git -C "$REPO_T1" config gvfs.prefetch.cache-server "$(cache_server_url 1)" &&
1843+ git -C "$REPO_T1" config gvfs.get.cache-server "$(cache_server_url 2)" &&
1844+ git -C "$REPO_T1" config gvfs.post.cache-server "$(cache_server_url 3)" &&
1845+
1846+ # Run prefetch - should go to server 1.
1847+ git -C "$REPO_T1" gvfs-helper \
1848+ --cache-server=trust \
1849+ --remote=origin \
1850+ --no-progress \
1851+ prefetch >OUT.output 2>OUT.stderr &&
1852+ verify_server_was_contacted 1 &&
1853+ verify_server_was_not_contacted 0 &&
1854+ verify_server_was_not_contacted 2 &&
1855+ verify_server_was_not_contacted 3 &&
1856+
1857+ # Clean up shared cache for next verb.
1858+ rm -rf "$SHARED_CACHE_T1"/pack/* &&
1859+
1860+ # Run get - should go to server 2.
1861+ git -C "$REPO_T1" gvfs-helper \
1862+ --cache-server=trust \
1863+ --remote=origin \
1864+ get \
1865+ <"$OID_ONE_BLOB_FILE" >OUT.output 2>OUT.stderr &&
1866+ verify_server_was_contacted 2 &&
1867+
1868+ # Clean up shared cache for next verb.
1869+ rm -rf "$SHARED_CACHE_T1"/[0-9a-f][0-9a-f]/ &&
1870+ rm -rf "$SHARED_CACHE_T1"/pack/* &&
1871+
1872+ # Run post - should go to server 3.
1873+ git -C "$REPO_T1" gvfs-helper \
1874+ --cache-server=trust \
1875+ --remote=origin \
1876+ --no-progress \
1877+ post \
1878+ <"$OIDS_BLOBS_FILE" >OUT.output 2>OUT.stderr &&
1879+ verify_server_was_contacted 3
1880+ '
1881+
18251882test_done
0 commit comments