ABSTRACT Cosmic ray (CR)-modified shocks are a demanding test of numerical codes. We use them to test and validate the two-moment method for CR hydrodynamics, as well as characterize the realism of CR shock acceleration in two-fluid simulations which inevitably arises. Previously, numerical codes were unable to incorporate streaming in this demanding regime, and have never been compared against analytic solutions. First, we find a new analytic solution highly discrepant in acceleration efficiency from the standard solution. It arises from bi-directional streaming of CRs away from the subshock, similar to a Zeldovich spike in radiative shocks. Since fewer CRs diffuse back upstream, this favours a much lower acceleration efficiency, typically ${\lesssim}10{{\ \rm per\ cent}}$ (even for Mach number > 10) as opposed to ${\gtrsim}50{{\ \rm per\ cent}}$ found in previous analytic work. At Mach number ≳10, the new solution bifurcates into three branches, with efficient, intermediate, and inefficient CR acceleration. Our two-moment code accurately recovers these solutions across the entire parameter space probed, with no ad hoc closure relations. For generic initial conditions, the inefficient branch is robustly chosen by the code; the intermediate branch is unstable. The preferred branch is very weakly modified by CRs. At high Mach numbers (≳10), the gas jump conditions approach that of a purely hydrodynamic shock, and a sub-grid prescription for thermal injection is required for reasonable acceleration efficiencies ${\sim}10{{\ \rm per\ cent}}$. CR-modified shocks have very long equilibration times (∼1000 diffusion time) required to develop the precursor, which must be resolved by ≳10 cells for convergence. Non-equilibrium effects, poor resolution, and obliquity of the magnetic field all reduce CR acceleration efficiency. Shocks in galaxy-scale simulations will generally contribute little to CR acceleration without sub-grid modification.