writing depth component with GL_LESS depth function

I am able to write depth components into the z-buffer using glDrawPixels and GL_DEPTH_COMPONENT, if I use the depth function GL_ALWAYS. If I use any other depth function (for example GL_LESS, GL_GEQUAL), no depth values get written. Never. I do not understand this. Is depth testing supposed to give undefined results when the depth function is not GL_ALWAYS?